某计算机有30个通用寄存器,采用32位定长指令字,操作码字段(不含寻址方式)为8位,Add指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式。若基址寄存器可使用任一通用寄存器,且偏移量用补码表示,则Add指令中偏移量的取值范围是( )。

admin2019-08-10  23

问题 某计算机有30个通用寄存器,采用32位定长指令字,操作码字段(不含寻址方式)为8位,Add指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式。若基址寄存器可使用任一通用寄存器,且偏移量用补码表示,则Add指令中偏移量的取值范围是(    )。

选项 A、-4096~4095
B、-2048~2047
C、-1023~1024
D、-3071~3072

答案B

解析 首先可以直接排出C、D选项,因为无论偏移量是多少位,由于偏移量是采用补码表示的,根据补码的特性,它比源码表示的数多一位,而且多出来的就是补码的最小值。因此偏移量的最小值一定是一个偶数。操作码占8位,两个操作数具有两种不同的寻址方式,则需要2位寻址特征位,另外一共有30个寄存器,故需要5位来标识选择哪个寄存器,所以偏移量的位数=32-8-2-5-5=12,而12位的带符号的补码所能表示的数的范围为-2048~2047。
转载请注明原文地址:https://kaotiyun.com/show/IuCi777K
0

最新回复(0)