寻址方式

地址码编码由寻址方式决定

地址可能是寄存器编号,如果操作数在寄存器中

也有可能是存储单元的单元地址,如果操作数在存储器中

还有可能是输入输入端口编号,如果操作数在键盘或者鼠标的缓冲寄存器中


寻址方式的确定:

操作码中给出寻址方式,即根据操作码编码的不同确定寻址方式(这种指令系统可以不要寻址方式位,如mips指令系统)

有专门的寻址方式,比如X86,一条指令有多个操作数,每个操作数有专门的寻址方式位


有效地址:操作数所在的存储单元的地址(有虚拟内存管理机制是虚拟地址,在x86实模式下是物理地址)



立即数寻址:

操作数在指令中给出来了

优点:指令执行快

缺点:操作数幅值有限


直接寻址:

操作数的有效地址在指令中

优点:有效地址计算简单

确定:地址单位有效


间接寻址方式:(现在很少使用了)

指令中的地址段给出的是操作数地址的地址

优点:存储单位大

缺点:多次内存访问


寄存器寻址:

跟直接寻址差不多,比较快,指令短


寄存器间接地址:

跟间接寻址差不多


偏移寻址:

有效地址=寄存器的内容+地址码

灵活,但是比较复杂

变址寻址方式用于数组访问,偏移量明显或者隐含由标志寄存器给出

相对寻址方式A+pc,用于跳转指令的执行,pc会变,相对位移一直不变,用来实现公共子程序浮动

基址寻址用来程序重定位


堆栈寻址:

有效地址是栈顶寄存器中内容

指令短,但应用有效

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容