题目来源于王道论坛
某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令29条,二地址指令107条,每个地址字段为6位,则指令字长至少应该是 。
因为地址字段是6位,也就是A是6位。操作码OP不知道。
三地址格式为:(每个A为6位)
| OP | A1 | A2 | A3 |
因为指令 29 条,所以地址码需要能表示数字有29个,也就是:
同理二地址:
因为每个指令字长一样,所以少了一个A,应该加到OP上,也就是这里的 2的幂是 op+6。
| OP2=OP+A | A1 | A2 |
因为【注意】指令不能重复,一个题中,第一问用过的指令二进制,下面就不能再用了。所以OP表示的条数要减去29。
。
。
。
所以要同时满足:
算出OP为5位时候满足,那么指令字长就是 5+6+6+6 = 23
但是【注意】指令字长一般是 8 的整数倍(也就是字节编址),所以要在 23 加到满足8的整数倍。
即24。
解析:
三地址指令有29条,所以它的操作码至少为5位。以5位进行计算,它剩余32-29=3种操作码给二地址。而二地址另外多了6位给操作码,因此它数量最大达3*64=192。所以指令字长最少为23位,因为计算机按字节编址,需要是8的倍数,所以指令字长至少应该是24位,选A。