指令寻址
思维导图
顺序寻址
由于主存按字编址,所以指令地址每次+1;0-1-2-3-4-5-6-7-8
由于指令字长=2B,主存按字节编址,所以每条指令间隔地址为2;此时PC+1实际上是加了俩个地址;
由于采用变长指令字结构,所以指令字长不确定;当读取指令时,先通过操作码判断是几地址指令,然后在将剩余的操作数取出。此时每条地址指令间隔不定。
跳跃寻址
数据寻址
直接寻址
间接寻址
寄存器寻址
寄存器间接寻址
隐含寻址
立即寻址
总结
偏移寻址
基址寻址
1、用专用的基址寄存器保存程序首地址;或者用通用寄存器指明程序首地址(需要在逻辑地址中取几位指明用哪个通用寄存器作为基址寄存器);
2、物理地址 = 逻辑地址 + 基址地址
变址寻址
与基址寻址的区别:
1、基址寄存器只能由操作系统管理用户不能管理;而变址寄存器用户可以管理
2、变址寄存器中的内容作为偏移量,形式地址作为基地址;(与基址寻址刚好相反)
PS:基址&变址复合寻址
相对寻址
1、当程序内代码片段移动时,跳转指令采用直接寻址会出现错误;若采用相对寻址,则不论怎么移动都只与PC有关。
2、实际位置与PC指针与偏移量有关
3、硬件如何实现数的“比较”?
堆栈寻址
硬堆栈:不需要访存
软堆栈:每次访问都需要进行访存