(1)在计算机中,观察不同寻址方式的源操作数获取方式,可以给涉及的寄存器或存储单元假设初值。
MOV AX,1234
MOV AX,BX
MOV AX,[2000]
MOV AX,[SI]
MOV AX,[DI+06]
MOV AX,[BP+SI]
MOV AX,[BX+SI+06]
(2)将寄存器AX、BX分别赋值为0008H和0006H;AX和BS的内容相加,结果在AX中;用寄存器间接寻址将相加的结果AX保存在数据段的0006H单元处。
指令如下:
MOV AX,0008
MOV BX,0006
ADD AX,BX
MOV [BX],AX
1.在DEBUG下,用A命令输入上述指令,再用R命令显示寄存器的情况;用T命令单步执行,用D命令观察结果。
2.根据自己的理解和喜好,设计并完成其他寻址方式的指令。
(3)写出源操作数或目的操作数分别为寄存器相对寻址、基址变址寻址和相对基址变址寻址的指令完成实验。如:
MOV AX,[BX+2]
MOV AX,[BX+SI]
MOV AX,[BX+SI+2]
MOV [SI],AX
MOV [BX+SI],AX
1.用R命令修改寄存器的值,使BX=1000H,SI=4H,DI=8H。
2.用T命令执行观察结果,理解寻址方式。观察每种寻址方式的机器码及取操作数过程(所取操作数的存储区及语句执行后的结果的存储区,机器码又是存放于何处)。
(4)已知寄存器AX=1111H,BX=2222H,DS:[0010H]的内容为3333H。将AX和BX的内容交换,再将BX的内容与DS:[0010H]的内容交换。编写程序段,并上机检验。
图一.查看寄存器
(5)以下程序段将一组数据压入堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。压栈程序如下:
MOV AX,0102
MOV BX,0304
MOV CX,0506
MOV DX,0708
PUSH AX
PUSH BX
PUSH CX
PUSH DX
出栈程序自行编写(用不同的顺序出栈)
出栈: