第 17 题
某计算机有16个通用寄存器,采用32位定长指令字,操作码字段(含寻址方式位)为8位, Store 指 令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式。若基址寄存器可使用任一通用寄存 器,且偏移量用补码表示,则Store 指令中偏移量的取值范围是()。
A.-32768~+32767
B.-32767+~32768
C.-65536~+65535
D.-65535~+65536
[tag_link]
正确答案:A
采用 32 位定长指令字,其中操作码为 8 位,两个地址码一共占用 32-8=24 位,而 Store 指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址,机器中共有 16 个通用寄存器,则寻址一个寄存器需要 logz16 =4 位,源操作数中的寄存器直接寻址用掉 4 位,而目的操作数采用基址寻址也要指定一个寄存器,同样用掉 4 位,则留给偏移址的位数为 24-4-4=16 位,而偏移址用补码表示,16 位补码的表示范围为 -32768~+32767,选 A。