为了容易理解、记忆和使用计算机的指令,用一些英文单词或缩写作为助记符来描述每一条指令的功能。用助记符表示的指令就是计算机的汇编语言指令,汇编语言指令与机器语言指令具有一一对应的关系。
MCS-51 系列单片机指令系统共有111条指令,按功能划分,可分为以下五大类:
数据传送类指令(29条);
算术运算类指令(24条);
逻辑运算及移位类指令(24条);
控制转移类指令(17条);
位操作类指令(17条)。
一条完整的 MCS-51 系列单片机汇编语言的指令格式为: [标号:]〈操作码〉[操作数][;注释]
在一条指令中可以有0~3个操作数,操作数与操作数之间用逗号“,”分隔,操作数与操作码之间用空格分隔;操作数可以用二进制数、十进制数或十六进制数表示;操作数可分为目的操作数和源操作数,目的操作数写在前面,源操作数写在后面。
带方括号项称为可选项,可有可无。由指令格式可见,操作码是指令的核心,不可缺少。
在描述 MCS-51 系列单片机指令系统的功能时,经常使用下面的符号,其意义如下。
Rn:当前选中的工作寄存器组中的寄存器R0~R7之一,n=0~7。
Ri:当前选中的工作寄存器组中可作地址指针的寄存器R0、R1,i=0,1。
#data:8位立即数。
#data16:16位立即数。
direct:内部RAM 的8位地址,即可以是内部 RAM 的低128个单元地址,也可以是特殊
功能寄存器的单元地址或符号,因此在指令中direct表示直接寻址方式。
addr11:11位目的地址,只限于在ACALL和AJMP指令中使用。
addr16:16位目的地址,只限于在LCALL和LJMP指令中使用。
rel:补码形式表示的8位地址偏移量,在相对转移指令中使用。
bit:片内RAM 位寻址区或可进行位寻址的特殊功能寄存器的位地址。
@:间接寻址方式中间址寄存器的前缀标志。
C:进位标志位,它是布尔处理机的累加器,也称之为位累加器。
/:加在位地址的前面,表示对该位先求反再参与操作,但不影响该位的值。
(x):x可以是寄存器,也可以是RAM 地址,(x)表示其中的内容。
((x)):x是 寄 存 器 Ri,((x))表 示 x所指寄存器的内容作为地址,其 地 址 单 元 中 的
内容。
$:本条指令的起始地址。
←:指令操作流程,将箭头右边的内容送入箭头左边的单元。