一,寄存器变址操作的一般规则
在传送、比较等指令中用来改变操作对象的组件地址是常用的操作。变址的方法是将变址寄存器 V 和 Z 这两个 16 位的寄存器放在各种寄存器的后面,充当操作数地址的偏移量。操作数的实际地址就是寄存器的当前值以及 V 和 Z 内容相加后的和。
当源或目标寄存器用[S·]或[D·]表示时,就能进行变址操作。对 32 位数据进行操作时,要将 V、Z 组合成 32 位(V,Z)来使用,这时 Z 为低 16 位, V 为高 16 位。
可以用变址寄存器进行变址的软元件有 X、Y、M、S、P、T、C、D、K、H、KnX、KnY、KnM、KnS。
【例 】 如图 下所示的例子,求执行加法操作后源和目操作数的实际地址。
上图 变址操作举例
解:第一行指令执行 25→V,第二行指令执行 30→Z,所以变址寄存器的值为:V=25,Z=30。第三行指令执行(D5V)+(D15Z)→(D40Z),
[S1·]为 D5V:D(5+25)=D30 源操作数 1 的实际地址
[S2·]为 D15Z:D(15+30)=D45 源操作数 2 的实际地址
[D·]为 D40Z:D(40+30)=D70 目标操作数的实际地址
所以,第三行指令实际执行(D30)+(D40)→(D70),即 D30 的内容和 D45 的内容相加,结果送入 D70 中去。