题目
指出下列指令源操作数[1]的寻址方式[2]:(1) ADD AL,BL(2) SUB AX,09H(3) XCHG BX,[DI](4) MOV AL,[BP+SI+10]
指出下列指令源操作数[1]的寻址方式[2]: (1) ADD AL,BL (2) SUB AX,09H (3) XCHG BX,[DI] (4) MOV AL,[BP+SI+10]
题目解答
答案
(1) 源操作数BL为寄存器[3],属于寄存器寻址[4]。
(2) 源操作数09H为立即数,属于立即数寻址[5]。
(3) 源操作数[DI]通过DI寄存器间接寻址[6],属于寄存器间接寻址。
(4) 源操作数[BP + SI + 10]结合基址寄存器[7]BP、变址寄存器[8]SI及偏移量10,属于基址变址[9]加偏移寻址。
答案:
(1) 寄存器寻址
(2) 立即数寻址
(3) 寄存器间接寻址
(4) 基址变址加偏移寻址(或相对基址变址寻址,合理即可)。
解析
本题主要考查计算机组成原理中指令源操作数的寻址方式相关知识。解题的关键在于理解不同寻址方式的定义,并根据指令中源操作数的表示形式来判断其所属的寻址方式。
(1)ADD AL,BL
- 对于指令“ADD AL,BL”,源操作数是“BL”。
- 寄存器寻址是指操作数存放在寄存器中,指令中直接给出寄存器名。在这个指令里,“BL”是一个寄存器,所以源操作数“BL”采用的是寄存器寻址方式。
(2)SUB AX,09H
- 指令“SUB AX,09H”的源操作数是“09H”。
- 立即数寻址是指操作数直接包含在指令中,作为指令的一部分。“09H”是一个立即数,它直接出现在指令里,因此源操作数“09H”属于立即数寻址。
(3)XCHG BX,[DI]
- 指令“XCHG BX,[DI]”的源操作数是“[DI]”。
- 寄存器间接寻址是指操作数的有效地址存放在寄存器中,指令中给出该寄存器名。这里“DI”是一个寄存器,操作数存放在以“DI”寄存器内容为地址的存储单元中,所以源操作数“[DI]”通过“DI”寄存器间接寻址,属于寄存器间接寻址。
(4)MOV AL,[BP+SI+10]
- 指令“MOV AL,[BP+SI+10]”的源操作数是“[BP + SI + 10]”。
- 基址变址加偏移寻址(也称为相对基址变址寻址)是指操作数的有效地址由基址寄存器、变址寄存器的内容和一个偏移量相加得到。在这个指令中,“BP”是基址寄存器,“SI”是变址寄存器,“10”是偏移量,操作数存放在由“BP + SI + 10”计算得到的存储单元中,所以源操作数“[BP + SI + 10]”属于基址变址加偏移寻址。