汇编语言立即寻址方式

所要找的操作数直接写在指令中,这种操作数称为立即数。立即数就在指令中(紧跟在操作码之后),这种寻址方式称为立即寻址方式。8086 中立即数是 8 位或者 16 位。立即寻址方式用来表示常数,需要注意两个问题:①立即寻址方式只能用于源操作数字段;②立即数的类型必须与目的操作数的类型一致,目的操作数是字节,立即数也必须是字节,或者两者都是字。

立即寻址方式的用途:用于直接指定一个常数送给寄存器。

立即寻址方式的操作数就在指令里,而指令本身在代码段中存放,当机器从内存取指令到 CPU 时,操作数作为指令的一部分一起取出来存入 CPU 的指令队列中。当 CPU 开始执行这条指令时,就可以立即得到操作数而无需再到内存去取。

例 1 MOV AL,6H

则指令执行以后,AL=06H

指令中立即数 6 在机器中是 8 位而不是 4 位。

例 2 MOV AX,12AFH

则指令执行以后,AX=12AFH,即 AH=12H,AL=AFH,遵循高位数据在高地址的规定。

以上两条指令在 Debug 下的实验如图 1 所示。

立即寻址示例

图 1 立即寻址示例

由图 1 可见,指令 MOV AX,12AFH 的机器指令为 B8AF12,指令中直接含有操作数 12AF,而且操作数在指令中也是遵循“双高”原则存放。立即寻址方式在内存中的示意图如图 2 所示。

立即寻址方式在内存中存放示例图

图 2 立即寻址方式在内存中存放示例图

(完)

comments powered by Disqus