寻址方式

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

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

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

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


寻址方式的确定:

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

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


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



立即数寻址:

操作数在指令中给出来了

优点:指令执行快

缺点:操作数幅值有限


直接寻址:

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

优点:有效地址计算简单

确定:地址单位有效


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

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

优点:存储单位大

缺点:多次内存访问


寄存器寻址:

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


寄存器间接地址:

跟间接寻址差不多


偏移寻址:

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

灵活,但是比较复杂

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

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

基址寻址用来程序重定位


堆栈寻址:

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

指令短,但应用有效

你可能感兴趣的:(寻址方式)