文档介绍:第四章80C51单片微机的程序设计
汇编语言格式
1. 计算机语言——机器语言、汇编语言与高级语言
程序就是为计算某一算式或完成某一工作的若干指令的有序集合。计算机的全部工作概括起来,就是执行这一指令序列的过程。这一指令序列称为程序。为计算机准备这一指令前的过程称为程序设计。
⑴机器语言 在计算机中,所有的数符都是用二进制代码来表示的,指令也是用二进制代码来表示。这种用二进制代码表示的指令系统称为机器语言系统,简称为机器语言。直接用机器语言编写的程序称为手编程序或机器语言程序。
⑵汇编语言
在程序设计自动化的第一阶段,就是用英文字符来代替机器语言,这些英文字符被称为助记符。用这种助记符表示指令系统的语言称为汇编语言或符号语言,用汇编语言编写的程序称为汇编语言程序。
具有以下几个特点:
①助记符指令与机器指令是一一对应的,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,而且能反映计算机的实际运行情况,所以用汇编语言能编写出最优化的程序。
②汇编语言是“面向机器”的语言,编程比使用高级语言困难。
③汇编语言能直接访问存储器、输入与输出接口及扩展的各种芯片(比如A/D、D/A等) ,也可直接处理中断,因此汇编语言能直接管理和控制硬件设备。
④汇编语言通用性差,汇编语言和机器语言一样,都面向一台具体的机器,不同的单片微机具有不同的指令系统,并且不能通用。
但是,计算机不能直接识别在汇编语言中出现的字母、数字和符号,需要将其转换成用二进制代码表示的机器语言程序,才能够识别和执行。通常把这一转换(翻译)工作称为汇编。汇编可以由程序员通过查指令表把汇编指令程序转换为机器语言程序,这个过程称为人工汇编。目前基本上由专门的程序来进行汇编,这种程序称为汇编程序。经汇编程序汇编而得到的机器语言程序,计算机能够识别和执行,因此这一机机器语言程序称为目的程序或目标程序,而汇编语言程序称为源程序。这三者之间的关系如图4–1所示。
⑶高级语言
比如BASIC、FORTRAN、COBOL及PASCAL等,都是一些参照数学语言而设计的、近似于人们日常用语的语言。这种语言不仅直观、易学、易懂,而且通用性强,易于移植到不同类型的机器中去。计算机也不能直接识别和执行高级语言,需要将其转换为机器语言才能识别和执行。对于高级语言,这一转换工作通常称为编译或者解释。进行编译或者解释的专用程序称为编译程序或者解释程序。
由于高级语言不受具体机器的限制,而且使用了许多数学公式和习惯用语,从而简化了程序设计的过程,因此是一种面向问题或者面向过程的语言。近年来高级语言发展很快,相继出现了许多面向工程设计、自动控制、人工智能等方面的语言,比如,APT、PROLOG、LISP、PL/M以及C语言等。而80C51系列单片微机作为工业标准地位,从1985年开始就有C语言编译器,简称C51。“面向控制”这一使用的特点,仍以汇编语言为主进行讲解。
⒉汇编语言
⑴汇编语言语句的种类和格式
①汇编语言语句的种类
汇编语言语句有三种基本类型:指令语句、伪指令语句和宏指令语句。
指令语句:每一个指令语句都在汇编时产生一个目标代码,对应着机器的一种操作。
例如:MOV A,#0
伪指令语句:主要是为汇编语言服务的,在汇编时没有目标代码与之对应。
例如:ONE EQU 1
宏指令语句:用以代替汇编语言源程序中重复使用的程序段的一种语句,由汇编程序在汇编时产生相应的目标代码。
②汇编语言语句的格式
指令语句和伪指令语句的格式是类似的。
指令语句的格式为:
【标号(名字)】:助记符(操作码)【操作数(参数)】;【注释】
伪指令语句的格式:
名字定义符参数;注释
两种语句都由四个部分组成。其中每一部分称为域也称为字段,各字段之间用一个空格或字段定界符分隔,常用的字段定界符有冒号“:”、逗号“,”和分号“;”。其中方括号括起来的是可选择部分。
标号(也称为名字) 域:
用来说明指令的地址。标号可以作为LJMP、AJMP、LCALL及ACALL等指令的操作数。
      在指令语句中,标号位于一个语句的开头位置,由字母和数符组成,字母打头,冒号“:”结束。在80C51单片微机的汇编语言中,标号中的字符个数一般不超过8个,若超过8个,则以前面的8个为有效,后面字符不起作用。
      不能使用本汇编语言中已经定义了的符号作标号,比如指令助记符(如ADD) 、伪指令(如END) 及寄存器符号名称(如PC) 。
       一条语句可以有标号,也可以没有标号,标号的有无取决于程序中的其它语句是否需要访问该条语句。
伪指令语句与指令语句主要不同是在其名字后面没有冒号。
操作码域:
是指令的助记符或定义符,用