第四次汇编语言实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言实验报告

Assembly Language Programming Lab Reports

______________________________________________________________________________ 班级:姓名:学号:实验日期:

学院:专业:

实验顺序:原创:___ 实验名称:循环程序设计

实验分数:_______ 考评日期:________ 指导教师:

______________________________________________________________________________ 一.实验目的

1、掌握两种循环结构,DO WHILE的循环结构用CMP指令和条件转移指令构成。DO UNTIL用loop,loope,loopne这三种指令实现。

2、掌握以下指令

掌握循环指令,loop,loope,loopne。

掌握串处理指令,movs,cmps,scas,lods,stos 以及和他们联合使用的重复前缀指令rep,repz,repnz。

掌握伪指令 EQU 及操作符 '$'的使用。

掌握cmp,test和条件转移指令构成的循环结构。

3、掌握循环程序的设计过程,写出设计方法,给出程序框图,写出循环程序。

4、掌握多重循环中,可以由内层循环向外层循环跳转,或者直接向外层程序跳转,但是不允许从外向内跳转。

5、会用循环实现排序算法。

______________________________________________________________________________二.实验环境

操作系统:windows 8

编译程序:masm 5.0

______________________________________________________________________________三.实验原理

原理:

①loop循环

②两层、三层循环的嵌套

______________________________________________________________________________四.实验步骤及结果分析

1.简单的循环程序。

(1)写出y=5!的程序段。

代码:

data segment

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

mov cx,5

mov al,1

mov bl,1

calculate:

mul bl

inc bl

loop calculate

mov y,ax

mov ah,4ch

int 21h

code ends

end start

运行截图:

(2)在程序为N的字节数组value中取出第一个负数存在BL中。代码:

data segment

value db 1,-6,2,3,0,-4,0,4,0,3 data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

mov bx,0

mov cx,m

let:

mov al,value[bx]

test al,80h

jnz exit

inc bx

loop let

exit: mov bl,al

mov ah,4ch

int 21h

code ends

end start

运行截图:

2.程序串处理

(1)查找CATI表中的字符@,找到后将其保存到SIGN单元,其位置值保存到ADDI单元。

代码:

extra segment

catt db 'asd@ddd'

sign db ?

addi dw ?

extra ends

code segment

assume cs:code,es:extra,ds:extra

start:

mov ax,extra

mov es,ax

mov al,'@'

lea di,catt

cld

mov cx,7

repnz scasb

dec di

mov al,es:[di]

mov sign,al

mov addi,di

mov ah,4ch

int 21h

code ends

end start

运行截图:

(2)在长度为N的字数组VALUE中取出第3个数保存到AX中。代码:

data segment

value dw 1,2,3,3,5,-1,10

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

mov ax, value[4]

mov ah,4ch

int 21h

code ends

end start

运行截图:

相关文档
最新文档