指令寻址
- 指令寻址分为顺序寻址和跳跃寻址两种。
- 顺序寻址:通过程序计数器PC加1,自动形成下一跳指令的地址。
- 跳跃寻址:通过转移类指令实现。
数据寻址
立即寻址
- 操作数本身就在指令字内,即形式地址A不是操作数地址,而是操作数本身,又称之为立即数。
- 数据是采用补码的形式进行存放的,‘#’表示立即寻址标记。
直接寻址
- 间接寻址的特点是,指令字当中的形式地址A就是操作数的真实地址EA。
隐含寻址
- 隐含寻址是指指令字当中不明显地给出操作数的地址,其操作数隐含在操作码或某个寄存器当中。
- 例如:一个地址格式的加法指令只给出一个操作地址,另一个操作数隐含在累加器ACC当中,这样累加器ACC成了另外一个数的地址。
间接寻址
- 倘若指令字当中的形式地址不直接指出操作数的地址,而是指出操作数有效地址所在存储单元的地址,也就是说,有效地址是由形式地址间接停工的,即为间接寻址,即EA=(A).
- 存储字的首尾为‘1’时,表示当前还需要继续访存寻址;当存储字的首位为‘0’时,表明该存储字即为EA
寄存器寻址
- 地址码直接给出了寄存器的编号Ri,即EA=Ri。
寄存器间接寻址
- Ri当中的内容不是操作数,而是操作数所在的主存单元的地址号,即有效地址EA=(Ri)。
基址寻址
- 基址寻址设有寄存器BR,其操作数的有效地址EA等于指令字当中的形式地址与基址寄存器当中的内容(称之为基地址)相加,即EA=A+(BR)。
- 在程序执行的过场当中BR当中的内容不变,A当中内容可变。
- 常采用寄存器做基址寄存器
变址寻址
- 变址寻址与基址寻址极其相似。其有效地址EA等于指令字当中的形式地址A与变址寄存器IX当中的内容相加之和,即EA=A+(IX)
- 在程序执行过程当中IX内容可变,形式地址A不变
相对寻址
- 相对寻址的有效地址是将程序计数器PC的内容(即当前指令的地址)与指令字当中的形式地址A相加而成,即EA=(PC)+A