指令的寻址

根据地址找到指令或操作数的方法

  • 用 PC 寄存器保存地址,分支少的时候好用,取地址快
  • 显式指出内存位置,分支多的时候快,但是取地址慢,适用 微程序 等分支多的程序

操作数的寻址

  • 根据冯氏结构,数据不能来自于外设端口
  • 如果访问内存,CPU 的效率会降低,不知道访问的是指令的话异常处理非常麻烦

所以指令可以分为两类:(RISC 原则之一)

  1. 传送指令(内存传寄存器或者反过来)
  2. 执行指令(操作数来自于寄存器)

寻址方式:

  1. 直接寻址:都是 CPU 内的事情
  2. 间接寻址:来自于内存,寄存器里放的是内存地址
  3. 偏移寻址

(mips 下不区分下面,统一称为偏移寻址)

  1. 相对寻址:相对 PC 的偏移
  2. 基址寻址:相对基址寄存器(CS SS B 等)的偏移
  3. 变址寻址:能够自增自减的寄存器(变址寄存器 I)里面的偏移