问题 问答题

设某计算机有变址寻址、间接寻址和相对寻址等寻址方式,设当前指令的地址码部分为。01AH,正在执行的指令所在地址为1F05H,变址寄存器中的内容为23A0H。

当执行转移指令时,转移地址为多少
已知存储器的部分地址及相应内容,见下表。


地址 内容
001AH
1F05H
1F1FH
23A0H
23BAH
23A0H
2400H
2500H
2600H
1748H

答案

参考答案:转移指令使用相对寻址,转移地址=(PC)+A=IF05H+001AH=1F1FH。
因为在本题中没有指出指令的长度,故此题未考虑PC值的更新。

解析: 前两个小题涉及数据寻址,其最终目的是寻找操作数,第3小题涉及指令寻址,其目的是寻找下一条将要执行的指令地址。
基本寻址方式的比较见下表。表中列出的偏移寻址包括变址寻址、基址寻址和相对寻址3种方式。


寻址方式 规则 主要优点 主要缺点
立即寻址 操作数=A 无须访问存储器 操作数范围受限
寄存器寻址 EA=R 无须访问存储器 寻址空间受限
直接寻址 EA=A 简单 寻址空间受限
间接寻址 EA=(A) 寻址空间大 多次访问主存
寄存器间接寻址 EA=(R) 寻址空间大 多访问一次主存
偏移寻址 EA=(R)+A 灵活 复杂
相对寻址方式中的PC值更新问题是一个需要注意的问题。有些计算机是以当前指令地址为基准的,有些计算机是以下条指令地址为基准的。这是因为有的机器是在当前指令执行完时,才将Pc的内容加1(或加增量),而有的机器是在取出当前指令后立即将PC的内容加1(或加增量),使之变成下条指令的地址。通常采用第二种方式比较多,如果题目中给出了指令的长度,则必须考虑PC值的更新问题。

单项选择题
单项选择题