实验三 指令实验(一)
[实验目的]
1、掌握指令的含义,进一步加深对指令的认识;
2、掌握用Turbo Debugger调试程序的方法。
[实验内容]
1、改写例3.81,找到result单元存1,未找到存0。
3.81 有一串L个字符的字符串存储于首地址为ASCII_STR的存储区中。如要求在字符串中找“空格”(ASCII码为20H)字符,找到则继续执行(NUM单元置1);如未找到则转到NOT_FOUND(NUM单元置0)去执行,编制实现这一要求的程序如下:
MOV CX,L
MOV SI,-1
MOV AL,20H
NEXT:
INC SI
CMP AL,ASCII_STR
LOOPNE NEXT
JNZ NOT_FOUND
.
.
.
NOT_FOUND:
.
.
.
2、用TD验证例3.57,例3.58,3.61 。
3.57 要求屏蔽0、1两位,可用AND指令并设置常数0FCH。
MOV AL,0BFH
AND AL,0FCH
3.58 要求第5位置1,可用OR指令
MOV AL,43H
OR AL,20H
3.61 要求操作数的某些数位变反,可以使用XOR指令,只要把源操作数的立即数字段相应位置成1就可以达到目的。如果求第0、1位变反,可使用如下指令:
MOV AL,11H
XOR AL,3
3、用TD验证例3.29,例3.30,看SP的变化,调试时先给AX赋值。
未赋值时:
赋值后:
4、输入下列指令,单步运行,观察AX,BX,SP,堆栈区域数据变化情况
MOV AX,1234H
MOV BX,5678H
PUSH AX
PUSH BX
MOV AX,0ABCDH
MOV BX,55AAH
POP BX
POP AX
[实验小结]
1.有空格改为20H
2.
输入时注意:
0BH
0FFH
- “-1”的输入:0FFFF
- 此句话为:结果输出位置:
若01则查找到:存放位置:0210
若00则未查找到:0210