- 单片机原理及接口技术
- 陈贵银 祝福主编
- 1346字
- 2020-08-26 15:30:19
3.1 指令系统简介
指令是规定计算机进行某种操作的命令。一台计算机所能执行的指令集合称为该计算机的指令系统。计算机的主要功能是由指令系统来体现的,指令系统与机器密切相关,指令系统是由计算机生产厂商定义的,不同系列的机器其指令系统是不同的。
3.1.1 指令概述
计算机内部只识别二进制数,因此,能被计算机直接识别、执行的指令是使用二进制编码表示的指令,这种指令被称为机器语言指令。机器语言具有难学、难记、不易书写、难以阅读和调试、容易出错而且不易查找错误,程序可维护性差等缺点。为方便人们的记忆和使用,制造厂家对指令系统的每一条指令都给出了助记符,助记符是用英文缩写来描述指令的功能,它不但便于记忆,也便于理解和分类。以助记符表示的指令就是计算机的汇编语言指令,汇编语言指令与机器语言指令具有一一对应的关系。
与通常的计算机一样,89C51单片机也只能识别二进制编码表示的机器语言。同样,为了人们记忆和使用方便,也采用汇编语言指令来描述它的指令系统。
89C51单片机指令系统共有111条指令,按功能划分,可分为五大类:
(1)数据传送类指令(29条);
(2)算术运算类指令(24条);
(3)逻辑运算及移位类指令(24条);
(4)控制转移类指令(17条);
(5)位操作类指令(17条)。
3.1.2 指令格式
一条完整的89C51单片机汇编语言的指令格式如下。
[标号:]〈操作码〉[操作数][;注释]
标号——该指令的起始地址,是一种符号地址。
标号可以由1~8个字符组成,第一个字符必须是字母,其余字符可以是字母、数字或其他特定符号,标号后跟分界符“:”。
操作码——指令的助记符,规定了指令所能完成的操作功能。
操作数——指出了指令的操作对象,操作数可以是一个具体的数据,也可以是存放数据的单元地址,还可以是符号常量或符号地址等。
在一条指令中可能有多个操作数,操作数与操作数之间用逗号“,”分隔。
注释——为了方便阅读而添加的解释说明性的文字,用“;”开头。
操作码与操作数之间必须用空格分隔,带方括号项称为可选项。由指令格式可见,操作码是指令的核心,不可缺少。
在89C51单片机指令系统中,指令的字长有单字节、双字节、三字节三种,在程序存储器中分别占用1~3个单元。
3.1.3 指令中常用符号说明
在描述89C51单片机指令系统的功能时,经常使用的符号及意义如下:
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指定的寄存器或地址单元中的内容;
((X))——由X寄存器的内容作为地址的存储单元的内容;
$ ——本条指令的起始地址;
← ——指令操作流程,将箭头右边的内容送到箭头左边的单元中。