0
点赞
收藏
分享

微信扫一扫

操作数的基本寻址方式

转角一扇门 2022-04-26 阅读 76

1.隐含寻址

这种类型的指令,不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。

例如:8086汇编里的 CWD指令;把AX中的内容按符号位拓展成DX,AX双字。

 2.立即寻址

指令中直接给出操作数本身,而不是操作数所在的地址。

例如:MOV AX,#123

3.直接寻址

指令中直接给出操作数在内存中的位置。

例如:MOV AX,123

4.间接寻址

指令中的地址字段不是真正的操作数地址,而是操作数地址的指示器。

例如:MOV AX,[121]

5.寄存器寻址

操作数在寄存器里,如上述的AX寄存器。

6.寄存器间接寻址

指令格式中的寄存器里存放的是操作数的地址。

例如 MOV [AX],#123

7.偏移寻址之基址寻址

利用指令中所指明的基址寄存器和偏移量相结合进行相关计算,得出所需的操作数地址。

例如: MOV BP[100],#123

8.偏移寻址之变址寻址

利用指令中所指明的基址寄存器和偏移量相结合进行相关计算,得出所需的操作数地址,并且指令执行完成后,变址寄存器的值加一或者减一。

例如:MOV SI[100],#123

9.偏移寻址之相对基址变址寻址

操作数的地址由基址寄存器+变址寄存器+偏移量得到。其中若无偏移量,则为基址变址寻址。

例如:MOV [BP][SI][100],#123

示意图由上图修改即可,即得到111的方式(不一定是111)由基址寄存器+变址寄存器+偏移量得到。

10.堆栈寻址

操作数由专用的堆栈指针寄存器隐式指名。

例如:PUSH ,#123(假设可以将立即数入栈,有些机器并不支持这样做)

ok。 

 

 

 

 

 

举报

相关推荐

0 条评论