设某计算机有变址寻址、间接寻址和相对寻址等寻址方式,设当前指令的地址码部分为001AH,正在执行的指令所在地址为1F05H,变址寄存器中的内容为23AOH。 (1)当执行取数指令时,如为变址寻址方式,则取出的数为多少? (2)如为间接寻址,

admin2013-07-12  44

问题 设某计算机有变址寻址、间接寻址和相对寻址等寻址方式,设当前指令的地址码部分为001AH,正在执行的指令所在地址为1F05H,变址寄存器中的内容为23AOH。
    (1)当执行取数指令时,如为变址寻址方式,则取出的数为多少?
    (2)如为间接寻址,取出的数为多少?
    (3)当执行转移指令时,转移地址为多少?
    已知存储器的部分地址及相应内容,见下表。

选项

答案(1)变址寻址时,操作数S=((Rx)+A)=(23AOH+001AH)=(23BAH) (2)间接寻址时,操作数S=((A))=((001AH))=(23AOH)=2600H。 (3)转移指令使用相对寻址,转移地址=(PC)+A=1F05H+00lAH=1F1FH。 因为在本题中没有指出指令的长度,故此题未考虑PC值的更新。

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

    相对寻址方式中的PC值更新问题是一个需要注意的问题。有些计算机是以当前指令地址为基准的,有些计算机是以下条指令地址为基准的。这是因为有的机器是在当前指令执行完时,才将PC的内容加1(或加增量),而有的机器是在取出当前指令后立即将PC的内容加1(或加增量),使之变成下条指令的地址。通常采用第二种方式比较多,如果题目中给出了指令的长度,则必须考虑PC值的更新问题。
转载请注明原文地址:https://kaotiyun.com/show/0rxi777K
0

随机试题
最新回复(0)