计组之指令系统:2、指令寻址与数据寻址(直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、隐含寻址、基址寻址、变址寻址、相对寻址、堆栈寻址)

指令寻址

思维导图

在这里插入图片描述

顺序寻址

在这里插入图片描述

由于主存按字编址,所以指令地址每次+1;0-1-2-3-4-5-6-7-8

在这里插入图片描述

由于指令字长=2B,主存按字节编址,所以每条指令间隔地址为2;此时PC+1实际上是加了俩个地址;

在这里插入图片描述

由于采用变长指令字结构,所以指令字长不确定;当读取指令时,先通过操作码判断是几地址指令,然后在将剩余的操作数取出。此时每条地址指令间隔不定。

跳跃寻址

在这里插入图片描述

数据寻址

在这里插入图片描述

直接寻址

在这里插入图片描述

间接寻址

在这里插入图片描述

寄存器寻址

在这里插入图片描述

寄存器间接寻址

在这里插入图片描述

隐含寻址

在这里插入图片描述

立即寻址

在这里插入图片描述

总结

在这里插入图片描述

偏移寻址

在这里插入图片描述

基址寻址

在这里插入图片描述

1、用专用的基址寄存器保存程序首地址;或者用通用寄存器指明程序首地址(需要在逻辑地址中取几位指明用哪个通用寄存器作为基址寄存器);
2、物理地址 = 逻辑地址 + 基址地址

在这里插入图片描述

变址寻址

在这里插入图片描述

与基址寻址的区别:
1、基址寄存器只能由操作系统管理用户不能管理;而变址寄存器用户可以管理
2、变址寄存器中的内容作为偏移量,形式地址作为基地址;(与基址寻址刚好相反)

在这里插入图片描述
PS:基址&变址复合寻址
在这里插入图片描述

相对寻址

在这里插入图片描述
在这里插入图片描述

1、当程序内代码片段移动时,跳转指令采用直接寻址会出现错误;若采用相对寻址,则不论怎么移动都只与PC有关。
2、实际位置与PC指针与偏移量有关
3、硬件如何实现数的“比较”?
在这里插入图片描述

堆栈寻址

在这里插入图片描述

在这里插入图片描述

硬堆栈:不需要访存
软堆栈:每次访问都需要进行访存

比较

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41587740/article/details/109110810
今日推荐