《循环指令》实验报告
- 格式:doc
- 大小:96.50 KB
- 文档页数:4
movax,data
movds,ax
movcx,cnt
leabx,BUF-1
moval,0
again:
incbx
cmpbyte ptr[bx],0
jg exit
jl exit
incal
loopnz again
exit:
incal
movResult,al
movah,4ch
Int 21h
Codeends
Start:
movax,data
movds,ax
movcx,cnt
leabx,buf1
moval,0
movah,0
movdl,0
again:cmpbyte ptr[bx],0
jg next1
jl next2
incdl
jmp next3
next1:incal
jmp next3
next2:incah
next3:incbx
1.编写程序完成统计下列存储区域中正数个数,负数个数和零的个数。请使用loop指令。
Datasegment
Buf1db0,12,-9,0,0,65,100,-95,0,Байду номын сангаас23
cntequ$-Buf1
Zhengshudb?
Fushudb?
Lingdb?
Dataends
Codesegment
Assume cs:code ,ds:data
MOVDS,AX
movcx,cnt
leasi,buf1-1
leadi,buf2-1
again :
incsi
incdi
moval,[si]
cmpal,[di]
loopz again
JZ NEXT1
MOVAL,0
JMP EXIT
NEXT1:
MOVAL,1
EXIT:
MOVAH,4CH
INT 21H
CODESENDS
Endstart
ENDSTART
.思考与练习
老师评价
loop again
movzhengshu,al
movfushu,ah
movling,dl
movah,4ch
int 21h
Codeends
Endstart
2.编写程序完成比较两个字符串是否相等,请使用LOOPZ指令而不使用CMPSB指令。如果相等AL置1,否则AL置0。请分别实验两种情况。
DATASSEGMENT
ENDSTART
3.请编写程序完成下列程序,统计下面的BUF区域中第一个非零数据的下标,下标存于result中。
Datasegment
BUFdb0,0,0,0,0,0,0,0,1,4,5,0,0,0
CNTEQU$-BUF
Resultdb?
Dataends
Codesegment
Assume cs:code,ds:data
Buf1db'computer'
Buf2db'computer'
cntequ$-Buf2
;此处输入数据段代码
DATASENDS
STACKSSEGMENT
;此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:CODES,DS:DATAS,SS:STACKS
START:
MOVAX,DATAS
《循环指令》实验报告
实验名称
循环指令
实验
时间
年月日
节课
实验
时数
2
实验学生
指导教师
实验场地
实验准备
(1)操作系统: Windows 2000 /windowsxp
(2)汇编软件:MASM
实验目的
(1)了解汇编语言调试程序使用的基本过程。
(2)使用debug调试汇编语言源程序
(3)掌握循环指令的使用
实验任务及实验步骤