模拟卷 组成原理 指令寻址方式 解答题
第 43 题

(10 分)设某计算机有变址寻址、间接寻址和相对寻址方式,一个指令长等于一个存储字。设当前指令的地址码部分为 001AH,正在执行的指令所在地址为 1F05H,变址寄存器中的内容为 23A0H。已知存储器的部分地址及相应内容如下表所示:

(1)当执行取数指令时,如为变址寻址方式,取出的数为多少? (2)如为间接寻址,取出的数为多少? (3)设计算机每取一个存储字 PC 自动加 1,转移指令采用相对寻址,当执行转移指令时,转移地址为多少?若希望转移到 23A0H,则指令的地址码部分应设为多少?

指令寻址方式

[tag_link]

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

寻址方式规则主要优点主要缺点
立即寻址操作数=A无需访问存储器操作数范围受限
寄存器寻址EA=R无需访问存储器寻址空间受限
直接寻址EA=A简单寻址空间受限
间接寻址EA=(A)寻址空间大多次访问主存
寄存器间接寻址EA=(R)寻址空间大多访问一次主存
偏移寻址EA=(R)+A灵活复杂

特别注意相对寻址方式中的 PC 值更新的问题:根据历年统考真题,通常在取出当前指令后立即将 PC 的内容加 1(或加增量),使之变成下条指令的地址。

(1) 变址寻址时,操作数

(2) 间接寻址时,操作数

(3) 转移指令使用相对寻址,因为指令字长等于存储字长,PC 每取出一条指令后自动加 1,因此转移地址 = (PC) + 1 + A = 1F05H + 1 + 001AH = 1F20H。若希望转移到 23A0H,则指令的地址码部分应为