指令 SRC寻址方式 SRC的地址 AX推算值 AX实际值
MOV AX, [SI] 寄存器间接寻址
0772:0002H A3A2 A3A2
MOV AX, TABLE [DI] 寄存器相对寻址
0772:0005H A6A5 A6A5
MOV AX, [SI]+05H 寄存器相对寻址
0772:0007H A8A7 A8A7
MOV AX, [BX] [DI+01H] 基址变址且相
对寻址
MOV AX, [BX] [SI]+03H 基址变址且相
对寻址
MOV AX, TABLE [BX] [SI]
基址变址且相对寻址
0772:0006H A7A6 A7A6
0772:0009H AAA9 AAA9
0772:000AH ABAA ABAA
MOV AX, ES:[BX] [DI] 基址变址寻址 0773:0005H C6C5 C6C5
MOV AX, [BP] [DI+02H] 基址变址且相
对寻址
MOV AX, TABLE [BP] [DI]
基址变址且相对寻址
0770:0006H B7B6 B7B6
0772:0008H A9A8 A9A8
指令 SRC寻址方式 SRC的地址 AX推算值 AX实际值
MOV AX, ES:[BP] [SI] 基址变址寻址 0773:0005H MOV AX, [BP] [SI+05H] 基址变址且相
对寻址
MOV AX, 03H [BP] [DI] 基址变址且相
对寻址
MOV AX, [BP] [SI] MOV AX, [BP+02H] [DI+03H] MOV AX, TABLE [BP+02H] [DI+03H]
五、 问题讨论
在上述实验中总结规律及需要注意的地方如下: 1.源操作数是立即数为立即寻址 2.源操作数是寄存器为寄存器寻址 在存储器寻址中:
3. 源操作数是存储器地址或变量,即为直接寻址
C6C5 BBBA
C6C5 BBBA
0770:000AH
0770:0007H B8B7 B8B7
基址变址寻址 0770:0005H 基址变址且相对寻址 基址变址且相对寻址
0772:000DH 0770:0009H
B6B5 BAB9
B6B5 BAB9
AEAD AEAD
4. 源操作数是【寄存器】为寄存器间接寻址
5.源操作数是【寄存器】+偏移量,为寄存器相对寻址。
需要注意的是,寄存器间接寻址只能使用BX,SI,DI,而[BP]即使没有偏移量也属于寄存器相对寻址。
6.由[BP]/[BX]+[SI][DI]组成即为基址变址寻址。
7.由[BP]/[BX]+[SI]/[DI]以及偏移量组成即为基址变址且相对寻址。 关于默认段地址的讨论:
一般默认段地址为DS段,如BP,SP则默认SS段,但是如果形如TABLE[BP],TABLE变量定义在DS段,而BP默认SS段,此时最终结果在DS段。