实验二寻址方式实验
说明:其中划横线的地方为该例题指令执行的结果;int 3为设置断点的指令,即执行到该指令时停止执行指令,并显示各寄存器的内容;对于g命令后面的值等于多少由运行该例题是从那一个开始地址决定的,即指令执行的开始地址.
一实验要求: 掌握寻址方式,熟悉用DEBUG命令来观测指令的执行情况,利用单步跟踪调试观察寄存器的变化和指令执行的结果,加深对寻址方式的理解。
二实验步骤
(1)立即寻址方式:
例(1) MOV AL,5
在debug下如何查看其执行结果:首先在MS—DOS方式下输入debug:其操作过程如下:C:\WINDOWS>debug↙(回车符)
-a↙
126C:0100 mov al,5↙
126C:0102 int 3↙
126C:0103↙
-g↙(执行程序命令G)
AX=0005 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=126C ES=126C SS=126C CS=126C IP=0102 NV UP EI PL NZ NA PO NC
126E:0102 CC INT 3
例(2)MOV AX,3064(其执行过程如下:)
-a↙
126C0103 MOV AX,3064↙
126C:0106 INT 3↙
126C:0107↙
-G=0103↙
AX=3064 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=126C ES=126C SS=126C CS=126C IP=0106 NV UP EI PL NZ NA PO NC
126E:0106 CC INT 3
(2)寄存器寻址方式:
例(1)MOV AX,BX(假设指令执行前AX=3064H,BX=1234H;)
其操作过程如下:
-R AX↙
:0↙
-R BX↙
:0↙
-R↙
-a↙
126C:0107 mov ax,3064↙
126C:010A mov bx,1234↙
126C:010D mov ax,bx↙
126C:010F int 3↙
126C:0110↙
-g=0107↙
AX=1234 BX=1234 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=126C ES=126C SS=126C CS=126C IP=010F NV UP EI PL NZ NA PO NC
126C:010F CC INT 3
(3)直接寻址方式:
例(1)MOV AX,[2000H](假设(DS)=3000H,并且(3000: 2000H)=3050H)其执行过程如下: -rds↙
DS 126C
:3000↙
-eds:2000
3000:2000 08.50 (敲一下空格) 00.30↙
-R AX↙
:0↙
-R BX↙
:0↙
-R↙
-a↙
126C:0110 mov ax,[2000] ↙
126C:0113 int 3↙
126C:0114↙
-g=0110↙
AX=3050 BX=1234 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=3000 ES=126C SS=126C CS=126C IP=0113 NV UP EI PL NZ NA PO NC
126C:0113 CC INT 3
(4)寄存器间接寻址方式:
例(1)MOV AX,[BX](假设(DS)=2000H,(BX)=1000H,(2000: 1000H)=50A0)其执行过程如下:
-rds↙
DS 3000
:2000↙
-eds:1000
2000:1000 6C.A0 (敲一下空格) 61.50↙
-R AX↙
:0↙
-R BX↙
:0↙
-R↙
-A↙
126C:0114 MOV BX,1000↙
126C:0119 INT 3↙
126C:011A↙
-G=0114↙
AX=50A0 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=2000 ES=126C SS=126C CS=126C IP=0119 NV UP EI PL NZ NA PO NC
126C:0119 CC INT 3
(5)寄存器相对寻址方式:
例(1)MOV AX,COUNT[SI](假设(DS)=3000H,(SI)=2000H,COUNT=3000H,
(35000H)=1234H;)其执行过程如下:
-r ds↙
DS 2000
:3000↙
-e ds:5000↙
3000:5000 00 34 (敲一下空格) 00 12↙
-R AX↙
:0↙
-R↙
-a↙
126C:011A mov si,2000↙
126C:011D mov ax,[3000+si] ↙
126C:0121 int 3↙
126C:0122↙
-g=011a↙
AX=1234 BX=1000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=2000 DI=0000
DS=3000 ES=126C SS=126C CS=126C IP=0121 NV UP EI PL NZ NA PO NC
126C:0121 CC INT 3
(6)基址变址寻址方式:
例(1)MOV AX,[BX][DI](假设(DS)=2100H,(BX)=0158H,(DI)=10A5H,(2100:11FDH=1234H)其执行过程如下:
-RDS↙
DS 3000
:2100↙
-EDS:11FD↙
2100:11FD 00 34 (敲一下空格) 00 12↙
-R AX↙
:0↙
-R BX↙
:0↙
-R↙
-A↙
126C:0122 MOV BX,0158↙
126C:0128 MOV AX,[BX][DI] ↙
126C:012A INT 3↙
126C:012B↙
-G=0122↙
AX=1234 BX=0158 CX=0000 DX=0000 SP=FFEE BP=0000 SI=2000 DI=10A5
DS=2100 ES=126C SS=126C CS=126C IP=012A NV UP EI PL NZ NA PO NC
126C:012A CC INT 3
(7)相对基址变址寻址方式:
例(1)MOV AX,MASK[BX][SI](假设(DS)=3000H,(BX)=2000H,(SI)=1000H,MASK=0250H (33250H=1234H)其执行过程如下:
-RDS↙
DS 2100
:3000↙
-EDS:3250
3000:3250 10.34 (敲一下空格) 13.12↙
-R AX↙
:0↙
-R BX↙
:0↙
-R↙
-A↙
126C:012A MOV BX,2000↙
126C:012D MOV SI,1000↙
126C:0130 MOV AX,[0250+BX+SI] ↙
126C:0134 INT 3↙
126C:0135↙
-G=012A↙
AX=1234BX=2000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=1000 DI=10A5
DS=3000 ES=126C SS=126C CS=126C IP=0134 NV UP EI PL NZ NA PO NC
126C:0134 CC INT 3