1、某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令 29 条,二地址指令 107 条,每个地址字段为 6 位,则指令字长至少应该是()
A、24 B、26 C、28 D、32
解答:三地址指令29条,说明操作码至少5位,所以剩下2^5-29=3种操作码给二地址指令调配。此种情况下,二地址能实现的指令数为:3*2^6=192>107,显然是够用的,所以操作码5位完全够用,指令字长即5+6*3=23,取8的倍数则为24.
2、某计算机有16个通用寄存器,采用32位定长指令字,操作码字段(含寻址方式位)为8位,Store指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式。若基址寄存器可使用任一通用寄存器,且偏移量用补码表示,则Store指令中偏移量的取值范围是()
A、-32768~+32767 B、-32767~+32768 C、-65536~+65535 D、-65535~+65536
解答:这里操作码(+寻址方式位)=8位;通用寄存器16个,即2^4,故寄存器编号需要4位;源操作数采用寄存器寻址,需要一个寄存器,占4位;目的操作数采用基址寻址,同样需要一个寄存器,又占4位,余下偏移地址位数为32-8-4-4=16位,按要求偏移地址用补码表示,16位补码取值范围为-32768~+32767.
3、某计算机采用16位定长指令字格式,操作码位数和寻址方式位数固定,指令系统中有48条指令,支持直接、间接、立即、相对4种寻址方式,单地址指令中直接寻址方式可寻址范围是()
A、0~255 B、0~1023 C、-128~127 D、-512~511
解答:对比第2题提问部分“偏移量的取值范围”,这里问的是“寻址范围”,后者应满足主存地址不为负数。由题可知,指令总长16位,48条指令对应的操作码至少6位,4种寻址方式2位,则形式地址位数为16-6-2=8,直接寻址范围为2^8=256,即0~255.