某计算机指令字长为16位,指令有双操作数、单操作数和无操作数3种格式,每个操作数字段均有6位二进制表示,该指令系统共有m条(m<16)双操作数指令,并存在无操作数指令。若采用扩展操作码技术,那么最多还可设计出单操作数指令的条数是( )。
【正确答案】
B
【答案解析】解析:双操作数指令操作码字段占4位,单操作数指令操作码字段占10位,无操作数指令操作码字段占16位。现指令系统中有m条双操作数指令,则给单操作数和无操作数指令留下了(2
4
-m)个扩展窗口。因为存在着无操作数指令,所以单操作数指令必须要给无操作数指令留下一个扩展窗口,最终最多可以设计出单操作数指令的数目为(2
4
-m)×2
6
-1。 [归纳总结]因为如果指令长度一定,则地址码与操作码字段的长度是相互制约的。采用扩展操作码法是让操作数地址个数多的指令(三地址指令)的操作码字段短些,操作数地址个数少的指令(一或零地址指令)的操作码字段长些,这样既能充分地利用指令的各个字段,又能在不增加指令长度的情况下扩展操作码的位数,使它能表示更多的指令。 [解题技巧]选项C没有给无操作数指令留下扩展窗口,不完全符合题意。