指令系统的分类
该指令系统使用44种助记符,它们代表着33种可能,可以实现51种操作。因此,有的功能可以有几种助记符。指令助记符与操作数的各种可能寻址方式的组合总共构造出111条指令。不同指令对标志位的影响不同,可能会影响PSW中(Cy、AC、OV、P)某些标志位的状态,且需要正确估算指令的字节数。
指令格式由两部分组成,即操作码和操作数。操作码:规定指令进行什么操作,操作数:指令操作的对象。有单字节指令、双字节指令、三字节不同长度的指令,格式不同:(1)单字节指令:操作码、操作数 同在一个字节中。(2)双字节指令:操作码+操作数。(3)三字节指令:操作码+操作数+操作数。
在MCS-51单片机中,立即数不能作为目的操作数,以累加器A为目的操作数的指令影响奇偶校验标志位P;Rn与Rn、Rn与@Ri、@Ri与@Ri不能同时出现在指令的源、目的操作数中。指令中操作数表现形式如下。
内部RAM:A、Rn、@Ri、direct、#data
外部RAM:@DPTR、@Ri
外部ROM:@A+DPTR、@A+PC
MCS-51的基本指令共111条,按指令所占的字节来分(指令的字节数:每条指令在存储器中存放的单元数。指令操作码占一个字节,直接地址占一个字节,8位数据占一个字节,16位数据占两个字节;操作数中的A、B、R0~R7、C、@Ri、DPTR、@A+DPTR、@A+PC等均隐含在操作码中,不单独占字节):
(1) 单字节指令49条;
(2) 双字节指令45条;
(3) 三字节指令17条。
按指令的执行时间来分:
(1) 1个机器周期(12个时钟振荡周期)指令64条
(2) 2个机器周期(24个时钟振荡周期)指令45条
(3) 只有乘、除两条指令的执行时间为4个机器周期(48个时钟振荡周期)(备注:12MHz晶振:机器周期为1s)。
按功能分为五类:
(1)数据传送类(28条)
(2)算术运算类(24条)
(3)逻辑操作类(25条)
(4)控制转移类(17条)
(5)位操作类(17条)