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

admin2017-04-28  31

问题 某计算机有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://jikaoti.com/ti/uSfjFFFM
0

最新回复(0)