实验五 条件转移指令
实验目的
通过实验掌握下列知识:
1、8086指令:JZ,JNZ,JC,JNC,CMP,SHR。
2、程序:用字符搜索法确定字符串长度。
3、程序:十六进制数化为ASCII码的一般方法。
实验内容及步骤
一、用字符搜索法确定字符串长度
1、用A命令在100H开始的内存处键入下列程序:
JMP START
DB 'This is the program to measure'
DB 'the length of a string!$'
START: MOV BX,102
MOV AL,24
XOR CL,CL
LOP: CMP AL,[BX]
JZ EXIT
INC BX
INC CL
JMP LOP
EXIT: INT 3
2、用G命令运行此程序,并检查CL的统计长度是否与你自己统计的实际长度是否一样?
注:MOV AL,24中24H为$的ASCII码。
二、十六进制数转化为ASCII码的一般方法(显示内存内容)
1、用A命令在100H处键入下列程序:
MOV SI,0
MOV BL,10
LOP:MOV DL,[SI]
MOV CL,4
SHR DL,CL
CMP DL,0A
JC J1
ADD DL,7
J1字符串长度为0: ADD DL,30
MOV AH,2
INT 21
MOV DL,[SI]
AND DL,0F
CMP DL,0A
JC J2
ADD DL,7
J2: ADD DL,30
MOV AH,2
INT 21
MOV DL,20
MOV AH,2
INT 21
INC SI
DEC BL
JNZ LOP
INT 20
2、用N,W命令将此程序用CC.COM文件名存入磁盘。
3、用Q命令退出DEBUG。
4、在DOS命令状态下直接运行CC.COM命令文件,应在屏幕上显示出内存从0000H开始的16个字节的内容,若有错误,用DEBUG检查之。
5、自编程序:修改上面程序,使除以十六进制数形式显示内存内容外,还能在其右边显示该十六进制码所对应的ASCII字符,07-0D的控制字符用'.'代替。
三、综合程序(选做):测量一字符串长度,并用十六进制数显示之
程序内容:
JMP START
DB 'This is a program to measure the length of a string。'
DB 0D,0A
DB 'the length of the string is: $'
START: MOV AH,9
MOV DX,102
INT 21
MOV BX,101
MOV AL,24
MOV DH,FF
LOP: INC BX
INC DH
CMP AL,[BX]
JNZ LOP
MOV CH,2
MOV CL,4
LOP1: ROL DH,CL
MOV DL,DH
AND DL,0F
ADD DL,30
CMP DL,3A
JC J
ADD DL,7
J: MOV AH,2
INT 21
DEC CH
JNZ LOP1
INT 20
键入此程序,存入DD.COM文件中并在DOS命令状态下直接运行之,若未出现预期结果,用DEBUG检查有否错误?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论