指令系统1-格式
指令格式
指令又叫做机器指令,是计算机运行的最小单位(原语?)。一台计算机所有的指令集合构成了指令系统(指令集);
指令的基本格式: 操作码 + 地址码 ;
操作码:指出了指令应该执行什么操作,具有什么功能例如算数加法?
地址码:给出了被操作的信息,一个或者多个操作数所在的地址,运算结果保存地址,程序入口地址,程序转移地址
根据指令的操作数地址的数目,不同,可以把指令分成以下几种格式:
-
零地址指令 |OP| 只给出操作码
例如空操作指令,停机指令,关中断指令;
仅在堆栈计算机中通常,参与运算的操作数隐含的从栈顶弹出计算结果再隐含的压入堆栈; -
1地址指令: |OP|A1|
分成两种,一种就是只有目的操作数的单操作数指令,例如加一,减一,求反,求补;
另外一种情况包含约定的目的的地址的双操作数指令,例如按照A1可读操作数,另一个操作数由ACC累加器提供,结果也放在ACC中
(ACC)OP(A1) -> ACC -
二地址指令 |OP|A1|A2|
(A1)OP(A2)->A1. -
三地址指令 |OP|A1|A2|A3(结果)|。
(A1)OP(A2)->A3; -
四地址指令 |OP|A1|A2|A3(结果)|A4下址|
A4 下一条命令的地址
扩展操作码指令格式:
为了在指令字长有限的情况下,仍然保持比较丰富的指令种类,采取可变长度的操作码,全部指令的操作码字段位数不固定
且分散的放在指令字的不同位置上,这增加了指令译码的分析难度。
扩展操作码,操作码的长度随着地址码的减少而增长。
但是需要注意:
不允许短码是长码的前缀
操作码不能重复