(截图来自MOOC平台华中科技大学计算机组成原理课程)
(如果本文内容有不理解的地方,可以参考我之前的关于寻址方式的两篇文章)
操作码字段的位数要根据需要执行的操作数量来确定;寻址方式字段的位数根据支持的寻址方式数量确定;地址码字段位数根据需要访存的空间的大小来确定。
60种操作——操作码字段6位;
8种寻址方式——寻址方式字段3位;
操作数2K范围——地址码字段位数11位;
保存结果1K范围——地址码字段10位。
80种操作——操作码字段7位;
4种寻址方式——寻址方式字段2位。
(这里的各种寻址方式在上一篇文章操作数寻址方式中有详细介绍)
字长16位,每个地址码6位,那么二地址指令中操作码位数为4,对应的二地址指令为16,满足15条的要求。
而一地址指令为34条,此时4位操作码就无法满足需要,而需要向A1扩展。
将OP的第16条没用上的指令1111作为扩展标识,那么加上扩展的A1,指令编码的全集为:1111-000000 —— 1111-111111,一共是2^6=64条,一地址指令用去34条,还剩30条。
对于零地址指令,再讲A2作为扩展位。那么通过和一地址指令中剩下的30中情况进行组合,那么一共有30*2^6条零地址指令。