📅  最后修改于: 2023-12-03 15:29:12.932000             🧑  作者: Mango
在计算机中,指令执行时需要对存储器进行读写操作。读写操作中需要指定一个存储器单元的地址,此时使用的寻址方式称为寻址模式。8086微处理器中的寻址模式共有12种,其中比较常用的是以下6种:
直接寻址是最简单的寻址方式,直接将操作数的地址作为指令的一部分给出。例如,MOV AX, [1000]
这条指令就是直接寻址。
寄存器寻址使用的是8086微处理器中的各种寄存器来指示存储单元的地址。例如,MOV AX, CX
这条指令就是寄存器寻址。
寄存器间接寻址是通过寄存器中存储的地址来定位操作数的。例如,MOV AX, [BX]
这条指令就是寄存器间接寻址。
寄存器相对寻址是通过寄存器中的内容加上一个偏移值来计算操作数的地址。例如,MOV AX, [BX+SI]
这条指令就是寄存器相对寻址。
基址加变址寻址是由两个寄存器参与计算操作数的地址,其中一个寄存器存放基地址,另一个寄存器存放变址。例如,MOV AX, [BX+DI]
这条指令就是基址加变址寻址。
堆栈寻址是将操作数存放在堆栈中,指令中使用的是堆栈指针寄存器来指示操作数所在的位置。例如,PUSH AX
这条指令就是堆栈寻址。
MOV AX, [1000] ; 直接寻址
MOV AX, CX ; 寄存器寻址
MOV AX, [BX] ; 寄存器间接寻址
MOV AX, [BX+SI] ; 寄存器相对寻址
MOV AX, [BX+DI] ; 基址加变址寻址
PUSH AX ; 堆栈寻址