实验一 8086指令使用
实验目的
通过实验掌握下列知识:
1、8086指令: MOV,ADD,ADC,SUB,SBB,DAA,XCHG 2、DEBUG命令: A,D,E,F,H,R,T,U。
3、BCD码,ASCII码及用十六进制数表示二进制码的方法。 4、8086寄存器: AX,BX,CX,DX,F,IP。
内容及步骤
一、DEBUG 命令使用
1、键入 DEBUG 进入 DEBUG 控制状态,显示提示符 '- '。 2、用命令 F100 10F 'A' 将'A'的ASCII码填入内存。
3、用命令 D100 10F 观察内存中的十六进制码及屏幕右边的ASCII字符。 4、用命令 F110 11F 41 重复上二项实验,观察结果并比较。
5、用命令 E100 30 31 32 …… 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的十六进制数是什么字符的ASCII码?
6、用H命令检查下列各组十六进制数加减结果并和你的手算结果比较: (1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758H,347FH 7、用R命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。
8、用R命令将AX,BX内容改写为1050H及23A8H。
二、8086常用指令练习
1、传送指令
1)用A命令在内存100H处键入下列内容:
-A 0100↙
1 / 38
****:0100 MOV AX,1234↙ ****:0103 MOV BX,5678↙ ****:0106 XCHG AX,BX↙ ****:0108 MOV AH,35↙ ****:010A MOV AL,48↙ ****:010D MOV DX,75AB↙ ****:010F XCHG AX,DX↙ ****:0111 ↙ -
注:****为段寄存器CS的值,是由计算机生成的;↙为回车操作。 2)用U命令检查键入的程序并记录,特别注意左边的机器码。
-U 0100↙
3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。并注意标志位有无变化。 -T=0100↙ -T↙ -T↙ ┇
2、加减法指令:
1)用A命令在内存100H处键入下列内容:
MOV MOV ADD SUB MOV MOV ADD SUB SUB
AH,34 AL,22 AL,AH AL,78 CX,1284 DX,5678 CX,DX CX,AX CX,CX
2)用U命令检查键入的程序及对应的机器码。
3)用T命令逐条运行这些指令,检查并记录有关寄存器及标志位的情况。
2 / 38
思考:这次运行还是键入T,行不行?怎么办?用R命令检查一下IP的内容。注意T命令与IP的关系。
3、带进位加减法:
1)用A命令在内存200H处键入下列内容,并用U命令检查:
MOV MOV MOV MOV ADD ADC MOV MOV SUB SBB
AH,12 AL,84 CH,56 CL,78 AL,CL AH,CH DH,A7 DL,58 DL,7F DH,34
2)用T命令逐条运行这些指令,检查并记录寄存器及CF内容。
3)上面这段程序若改用16位操作指令达到同样结果,怎么改?试修改并运行之。 4、BCD码加减法 1)内容:
MOV ADD DAA
2)要求:用A命令键入,U命令检查,T命令逐条运行并记录有关寄存器及AF内容。
AL,58 AL,25
实验报告要求
1、十六进制数加减法手算结果及实验结果
2、8086常用指令练习部分的逐条运行记录,思考结果及自编程序运行记录(列出自编程序)。
附:动态调试器DEBUG 使用
1、键入 DEBUG 进入 DEBUG,显示提示符 '-'。
3 / 38