问答题 设某计算机有变址寻址、间接寻址和相对寻址等寻址方式,一个指令字长等于一个存储字。设当前指令的地址码部分为001AH,正在执行的指令所在地址为1F05H,变址寄存器中的内容为23AOH。已知存储器的部分地址及相应内容如下表所示。
地址 内容
001AH 23A0H
1F05H 2400H
1F1FH 2500H
23A0H 2600H
23BAH 1748H
问答题 当执行取数指令时,如为变址寻址方式,取出的数为多少?
【正确答案】
【答案解析】变址寻址时,操作数S=((Rx)+A)=(23A0H+001AH)=(23BAH)=1748H。
问答题 如为间接寻址,取出的数为多少?
【正确答案】
【答案解析】间接寻址时,操作数S=((A))=((001AH))=(23A0H)=2600H。
问答题 设计算机每取一个存储字PC自动加1,转移指令采用相对寻址,当执行转移指令时,转移地址为多少?若希望转移到23A0H,则指令的地址码部分应设为多少?
【正确答案】
【答案解析】转移指令使用相对寻址,因为指令字长等于存储字长,PC每取出一条指令后自动加1,因此转移地址=(PC)+1+A=1F05H+1+001AH=1F20H。若希望转移到23A0H,则指令的地址码部分应为23A0H-(PC)-1=23A0H-1F05H-1=049AH。 [解析] 本题考查指令的寻址方式。前两小题涉及数据寻址,其最终目的是寻址操作数,第3小题涉及指令寻址,其目的是寻址下一条将要执行的指令地址。下表列出了基本的寻址方式,其中偏移寻址包括变址寻址、基址寻址和相对寻址三种方式。
寻址方式 规则 主要优点 主要缺点
立即寻址 操作数=A 无需访问存储器 操作数范围受限
寄存器寻址 EA=R 无需访问存储器 寻址空间受限
直接寻址 EA=A 简单 寻址空间受限
间接寻址 EA=(A) 寻址空间大 多次访问主存
寄存器间接寻址 EA=(R) 寻址空间大 多访问一次主存
偏移寻址 EA=(R)+A 灵活 复杂
特别注意相对寻址方式中的PC值更新的问题:根据历年统考真题,通常在取出当前指令后立即将PC的内容加1(或加增量),使之变成下条指令的地址。