题目
1. 对 假 定 ( DS ) =2000H , ( ES ) =2100H , ( SS ) =1500H ,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量 VAL 的偏移地址为 0050H,请指出下列指令源操作数是什么寻址方式,其物理地址是多少?(1) MOV AX, 0ABH(2) MOV AX, [100H](3) MOV AX, VAL(4) MOV BX, [SI](5) MOV AL, VAL[BX](6) MOV CL, [BX][SI](7) MOV VAL[SI], BX(8) MOV [BP][SI], 100
1. 对 假 定 ( DS ) =2000H , ( ES ) =2100H , ( SS ) =1500H ,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量 VAL 的偏移地址为 0050H,请指出下列指令源操作数是什么寻址方式,其物理地址是多少?(1) MOV AX, 0ABH(2) MOV AX, [100H](3) MOV AX, VAL(4) MOV BX, [SI](5) MOV AL, VAL[BX](6) MOV CL, [BX][SI](7) MOV VAL[SI], BX(8) MOV [BP][SI], 100
题目解答
答案
答:(1) 立即数寻址,无物理地址(2) 直接寻址,物理地址=2000H×10H+100H=20100H(3) 直接寻址,物理地址=2000H×10H+0050H=20050H(4) 寄存器间接寻址,物理地址=2000H×10H+00A0=200A0H(5)相对寄存器寻址,物理地址=2000H×10H+(0050+0100H)=20150H(6)基址加变寻址,物理地址=2000H×10H+(0100H+00A0H)=201A0H(7) 寄存器寻址,无物理地址(8) 立即数寻址,无物理地址
解析
本题考查x86汇编语言的寻址方式及物理地址计算,需掌握以下核心知识点:
- 寻址方式分类:立即数、直接、寄存器间接、相对、基址变址等;
- 物理地址公式:物理地址 = 段寄存器 × 16 + 偏移地址;
- 默认段寄存器:数据操作默认使用DS,堆栈操作使用SS,代码段使用CS,额外段使用ES;
- 偏移地址计算:根据操作数类型(如
[SI]、VAL[BX]等)确定偏移组合方式。
(1) MOV AX, 0ABH
- 寻址方式:立即数寻址(操作数直接跟在指令后)。
- 物理地址:无(立即数不涉及内存)。
(2) MOV AX, [100H]
- 寻址方式:直接寻址(直接使用偏移地址
100H)。 - 物理地址:
$\text{DS} \times 16 + 100H = 2000H \times 16 + 100H = 20100H$
(3) MOV AX, VAL
- 寻址方式:直接寻址(变量
VAL的偏移为0050H)。 - 物理地址:
$\text{DS} \times 16 + 0050H = 2000H \times 16 + 0050H = 20050H$
(4) MOV BX, [SI]
- 寻址方式:寄存器间接寻址(通过
SI寄存器提供偏移)。 - 物理地址:
$\text{DS} \times 16 + \text{SI} = 2000H \times 16 + 00A0H = 200A0H$
(5) MOV AL, VAL[BX]
- 寻址方式:相对寻址(基偏移
VAL的0050H+BX的0100H)。 - 物理地址:
$\text{DS} \times 16 + (0050H + 0100H) = 2000H \times 16 + 0150H = 20150H$
(6) MOV CL, [BX][SI]
- 寻址方式:基址加变址寻址(
BX基址 +SI变址)。 - 物理地址:
$\text{DS} \times 16 + (\text{BX} + \text{SI}) = 2000H \times 16 + (0100H + 00A0H) = 201A0H$
(7) MOV VAL[SI], BX
- 寻址方式:寄存器寻址(源操作数为
BX寄存器)。 - 物理地址:无(寄存器操作不涉及内存)。
(8) MOV [BP][SI], 100
- 寻址方式:立即数寻址(操作数
100直接给出)。 - 物理地址:无(立即数不涉及内存)。