地址码编码由寻址方式决定
地址可能是寄存器编号,如果操作数在寄存器中
也有可能是存储单元的单元地址,如果操作数在存储器中
还有可能是输入输入端口编号,如果操作数在键盘或者鼠标的缓冲寄存器中
寻址方式的确定:
操作码中给出寻址方式,即根据操作码编码的不同确定寻址方式(这种指令系统可以不要寻址方式位,如mips指令系统)
有专门的寻址方式,比如X86,一条指令有多个操作数,每个操作数有专门的寻址方式位
有效地址:操作数所在的存储单元的地址(有虚拟内存管理机制是虚拟地址,在x86实模式下是物理地址)
立即数寻址:
操作数在指令中给出来了
优点:指令执行快
缺点:操作数幅值有限
直接寻址:
操作数的有效地址在指令中
优点:有效地址计算简单
确定:地址单位有效
间接寻址方式:(现在很少使用了)
指令中的地址段给出的是操作数地址的地址
优点:存储单位大
缺点:多次内存访问
寄存器寻址:
跟直接寻址差不多,比较快,指令短
寄存器间接地址:
跟间接寻址差不多
偏移寻址:
有效地址=寄存器的内容+地址码
灵活,但是比较复杂
变址寻址方式用于数组访问,偏移量明显或者隐含由标志寄存器给出
相对寻址方式A+pc,用于跳转指令的执行,pc会变,相对位移一直不变,用来实现公共子程序浮动
基址寻址用来程序重定位
堆栈寻址:
有效地址是栈顶寄存器中内容
指令短,但应用有效
网友评论