题28

题目

Q:【2014 统考真题】某计算机有 16 个通用寄存器, 采用 32 位定长指令字, 操作码字段 (含寻址方式位) 为 8 位, STORE 指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式。
若基址寄存器可使用任意一个通用寄存器, 且偏移量用补码表示, 则 STORE 指令中偏移量的取值范围是 ( )。
A.
B.
C.
D.

分析

A:没做出来的问题在于,不知道基址寻址,要消耗一个寄存器
还有就是寄存器会消耗多少位,这个也没有概念

A

  • 采用 32 位定长指令字
    • 其中操作码为 8 位
    • 两个地址码共占用
  • STORE 指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址
    • 机器中共有 16 个通用寄存器
    • 因此寻址一个寄存器需要
    • 源操作数中的寄存器直接寻址用掉 4 位
    • 而目的操作数采用基址寻址也要指定一个寄存器
      • 同样用掉 4 位
  • 则留给偏移量的位数为
  • 而偏移量用补码表示
    • 因此 16 位补码的表示范围为