指令寻址

指令寻址方式特点
顺序寻址PC 自动加“1”
跳跃寻址分为绝对转移(直接指出转移目标地址)和相对转移(指出相对于当前 PC 的偏移量),得出最终转移结果后修改 PC 值。

Tip

指令寻址总是修改 PC 的值,因为 CPU 总是根据 PC 的值来读取指令。

数据寻址

在指令的每一个地址字段前增加一个寻址特征字段,以判断使用哪种寻址方式。

A:形式地址 EA:有效地址

以一个二地址指令格式为例:

操作码寻址特征形式地址 A寻址特征形式地址 B

Tip

数据寻址要注意是无符号数还是补码表示的数。直接寻址由于地址肯定是正数,所以是无符号数;相对寻址、基址寻址和变址寻址由于是偏移寻址,可能是向负方向偏移的,所以用补码

寻址特征地址特点适用情况
隐含寻址不显式给出地址隐含约定第二个操作数由累加器 ACC 提供用于单地址或双地址指令中
立即寻址形式地址A 就是操作数本身,也称立即数,用补码表示形式地址的位数决定了操作数的范围给操作数赋初值
直接寻址EA=A形式地址的位数决定了可寻址的范围相对于立即寻址,缩短了指令长度
间接寻址EA=(A)扩大了指令范围,便于编制程序,便于完成子程序返回
寄存器寻址EA=Ri形式地址的位数决定了寄存器的数量执行速度快
寄存器间接寻址EA=(Ri)寄存器的位数决定了可寻址的范围扩大了寻址范围
相对寻址EA=(PC)+A,(PC)为当前指令的下一条地址广泛应用于转移指令
基址寻址EA=(BR)+A,BR 不变,A 可变面向系统,BR 由系统决定有利于多道程序设计和编制浮动程序
变址寻址EA=(IX)+A,IX 可变,A 不变面向用户,IX 可由用户改变有利于处理数组问题和编制循环程序