一、实验目的
熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。
二、实验题
- 通过debug命令对寄存器和存储单元进行设置,使
(DS)=2000H,(BX)=0100H,(SI)=0002H, (BP)=0200H,(SS)=2300H,(20100)=12H,(20101)=34H, (20102)=56H, (20103)=78H, (21200)=2AH, (21201)=4CH,(21202)=B7H,(21203)=65H, (23204)=88H
- 分别输入下列指令,并单步T执行,观察执行结果并截图。并说明各指令执行完后AX寄存器的内容。
(1) MOV AX,1200H
把1200H送入到AX中,操作完成后AX应显示1200
(2) MOV AX,BX
将BX中的对应的16位数送入AX中,联系第题目的设置,也就是把0100H送给AX,
结果AX和BX应都为0100H
(3) MOV AX,[1200H]
把内存单元地址为:DS*16+1200字地址对应的16位数送给AX,联系第题目的设置, 也就是把字地址位21200H的数,即4C2A送给AX,所以理论分析:AX应该是4C2AH
(4) MOV AX,[BX]
把内存单元地址为:DS *16+BX中的数的字地址对应的16位数送给AX,联系第题目的设置,也就是把字地址位20100H的数,即3421送给AX,所以理论分析:AX应该是3421H
(5) MOV AX,1100[BX]
把内存单元地址为:DS *16+1100+BX中的数的字地址对应的16位数送给AX,联系第题目的设置,也就是把字地址位21200H的数,即4C2A送给AX,所以理论分析:AX应该是4C2AH
(6) MOV AX,[BX][SI]
把内存单元地址为:DS * 16+BX+SI中的数的字地址对应的16位数送给AX,联系第题目的设置,也就是把字地址位20102H的数,即7856送给AX,所以理论分析:AX应该是7856H
(7) MOV AX,1100[BX][SI]
把内存单元地址为:DS * 16+1100+BX+SI中的数的字地址对应的16位数送给AX,联系第题目的设置,也就是把字地址位21202H的数,即65B7送给AX,所以理论分析:AX应该是65B7H
(8) MOV AX,[BP+SI+04]
把内存单元地址为:DS * 16+BX+SI+04中的数的字地址对应的16位数送给AX,联系第题目的设置,也就是把字地址位20206H的数,即0000送给AX,所以理论分析:AX应该是0000H