这里通过一个具体的题目来说明如何计算:
假设某机器指令字长16位,操作码可扩展,有单操作数、双操作数、零操作数 三类指令,每个地址码6位,双操作数指令有N条,一操作数指令有M条,则零操作数指令最多可有 条。
这是一个代表机器指令的表格:分为4,6,6三个区块
4 | 6 | 6 |
双操作数理论上可以有个,但只用了N个,剩下(-N)个可以拓展为后续的单操作数指令
这时候单操作数指令理论上可以有(-N)*个,但是只用了M个,剩下( (-N)*-M)个可以拓展作为后续的零地址指令
所以零地址指令有 ( (-N)*-M )* 个