例如:
假设OP进行的是加法操作。
(注:加括号表示取地址中的数值)。
下面来分析一下这条指令:
假设指令在内存中是依次存放的:
那么这样的指令还能再优化吗?
当然能,改变一下指令在内存中的存放位置,让操作码放在一起,地址码放在一起:
这样存放的话如果程序没有特殊的要求,CPU只要自动地取下一条指令就行了。
所以就可以用一个程序计数器的寄存器,用来控制指令地址的修改。
这样的话就省去了用来指出下一条指令的地址码,相应的指令结构也可以优化成:
那这样是最优化的情况了?
当然不是,用来存放结果的地址码也可以省去,直接用A1来存放结果:
在这基础之上,如果再搭配些例如ACC这样的硬件还能再次优化指令:
最后再补充一种特殊的指令:
注:
上面四地址码指令到一地址码指令的转变都属于定长指令结构,而前面四种指令变为零地址指令则是变长指令长度,如果想要前面四种指令变为零地址指令也是定长指令结构的话,就需要零地址操作码使用32位的操作码。
扩展操作码:
留出一种状态用来扩展:
留出多种状态用来扩展:
操作码小结:
操作类型: