指令系统概述

  1. 指令概述

为了容易理解、记忆和使用计算机的指令,用一些英文单词或缩写作为助记符来描述每一条指令的功能。用助记符表示的指令就是计算机的汇编语言指令,汇编语言指令与机器语言指令具有一一对应的关系。

MCS-51 系列单片机指令系统共有111条指令,按功能划分,可分为以下五大类:

  • 数据传送类指令(29条);

  • 算术运算类指令(24条);

  • 逻辑运算及移位类指令(24条);

  • 控制转移类指令(17条);

  • 位操作类指令(17条)。

  1. 指令格式

一条完整的 MCS-51 系列单片机汇编语言的指令格式为: [标号:]〈操作码〉[操作数][;注释]

  • 在一条指令中可以有0~3个操作数,操作数与操作数之间用逗号“,”分隔,操作数与操作码之间用空格分隔;操作数可以用二进制数、十进制数或十六进制数表示;操作数可分为目的操作数和源操作数,目的操作数写在前面,源操作数写在后面。

  • 带方括号项称为可选项,可有可无。由指令格式可见,操作码是指令的核心,不可缺少。

  1. 指令中常用符号说明

在描述 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所指寄存器的内容作为地址,其 地 址 单 元 中 的

  • 内容。

  • $:本条指令的起始地址。

  • ←:指令操作流程,将箭头右边的内容送入箭头左边的单元。