第2章 汇编语言简介

单片机所有指令的集合称为指令系统。指令系统与计算机硬件逻辑电路有密切关系。它是表征计算机性能的一个重要指标。不同类型的单片机指令系统不同,而同一系列不同型号的单片机指令系统基本相同。

51单片机指令系统具有功能强、指令短、执行快等特点,共有111条指令,从功能上可划分为数据传送类(28条)、算术运算类(24条)、逻辑运算类(25条)、控制转移类(17条)、位操作类(17条)五大类。

在汇编语言指令系统中,约定了一些指令格式描述中的常用符号。这些符号的标记和含义说明见表2-1。

表2-1 指令格式描述常用符号

计算机的指令系统是表征计算机性能的重要指标,每种计算机都有自己的指令系统。MCS-51单片机的指令系统是一个具有255种代码(00H~FFH)的集合,绝大多数指令包含两个基本部分:操作码和操作数。操作码表明指令要执行的操作的性质;操作数则表明参与操作的数据或数据所存放的地址。操作数可以是一个数(立即数),也可以是一个数据所在的空间地址,即在执行指令时从指定的地址空间取出操作数。

MCS-51指令系统中所有程序指令是以机器语言形式表示的,可分为单字节、双字节、三字节3种格式。

由于用二进制编码表示的机器语言阅读困难,且难以记忆,因此在微机控制系统中采用汇编语言指令来编写程序,见表2-2。本章介绍MCS-51指令系统就是以汇编语言来描述的。

表2-2 汇编指令与指令代码

MCS-51单片机指令格式采用了单地址指令格式。一条汇编语句是由标号、操作码、目的操作数、源操作数和注释5部分组成,其中方括号中的部分是可以选择的。指令的具体格式为:

标号与操作码之间用“:”隔开;

操作码与操作数之间用“空格”隔开;

目的操作数和源操作数之间用“,”分隔;

操作数与注释之间用“;”隔开。

标号由用户定义的符号组成,必须用英文大写字母开始。标号可有可无,若一条指令中有标号,标号代表该指令所存放的第一个字节存储单元的地址,故标号又称为符号地址,在汇编时,把该地址赋值给标号。

操作码是指令的功能部分,不能缺省。MCS-51指令系统中共有42种助记符,代表了33种不同的功能。例如MOV是数据传送的助记符。

操作数是指令要操作的数据信息。根据指令的不同功能,操作数的个数可以是3、2、1或没有操作数。例如MOV A,#20H,包含了两个操作数A和#20H,它们之间用“,”隔开。注释可有可无,加入注释主要为了便于阅读,程序设计者对指令或程序段做简要的功能说明,在阅读程序或调试程序时将会带来很多方便。