实验五 条件转移指令
实验目的
通过实验掌握下列知识:
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小时内删除。