2.某计算机的单字长指令为16位,采用扩展操作码方式,每个地址码4位,三地址指令15条,二地址指令8条

计算机组成原理,指令系统,原题如下:

某计算机的单字长指令为16位,采用扩展操作码方式,每个地址码4位,三地址指令15条,二地址指令8条,一地址指令127条,零地址指令()条?
A.16 B.15 C.31 D.32

解答:
按照三地址-二地址-一地址-零地址的顺序进行扩展编码。
首先考察三地址指令,由于每个地址码为4位,因此三地址指令中操作码的位数为16-3×4=4位,因此最多可以表示24=16条三地址指令,但是由于三地址指令只有15条,因此不妨用0-14(0000-1110)这15各编码来表示所有的三地址指令。
接着考察二地址指令,由于每个地址码为4位,因此二地址指令中操作码的位数为16-2×4=8位,因此在不受限制的情况下最多可以表示28=256条二地址指令,但是为了避免与上面的三地址指令混淆,要求前四位不能是(0000-1110)之间的数,因此前四位只能是1111。由于前四位固定,因此只剩下后面四位可以自由编码,最多有24=16种,而由于二地址指令只有8条,因此不妨用0-7(0000-0111)来表示这八条二地址指令。
然后用类似的方法考察一地址指令,由于每个地址码位4位,因此一地址指令中操作码的位数为16-1×4=12位,因此在不受限制的情况下最多可以表示212条三地址指令,但是由于三地址指令的限制要求前4位为1111,二地址指令限制中间四位只能为取值在范围8-15(1000-1111)这8个数字中,因此只有低四位可以自由编码,编码总数为8*24=128种。由于一地址指令只有127条,在整个的后面八位的编码中,只有128-127=1种编码剩余,不妨假设该编码为1111 1111。
零地址指令中,操作码的位数就是16位。前四位编码受三地址指令的限制只能为1111,类似地中间八位编码为了避免与二地址指令和一地址指令混淆只剩下一种(此处即1111 1111),因此零地址指令之后最后四位操作数可以自由编码,编码总数为24=16种。
综上所属,该题的选项为A.16。

你可能感兴趣的:(计算机学习,计算机组成原理,经验分享)