实验2—寻址方式

实验二寻址方式实验

说明:其中划横线的地方为该例题指令执行的结果;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

相关推荐
相关主题
热门推荐