1、3.4 汇编语言程序设计基础 3.4.1 程序设计 语言 概述 3.4.2 汇编语言 程序设计的特点及伪指令 3.4.3 单片机汇编语言程序设计3.4.3.1 顺序结构程序设计3.4.3.2 分支程序设计3.4.3.3 散转程序设计3.4.3.5 查表程序设计3.4.3.6 子 程序设计 3.4.4 单片机汇编语言程序设计 举例3.4.1 程序设计语言 概述3.4.1.1 汇编语言的优点3.4.1.2 汇编语言程序设计的过程3.4.1.3 程序质量3.4.2 汇编语言 程序设计的特点及伪指令3.4.2.1 汇编语言程序的特点标号: 操作码 操作数 1,操作数 2,操作数 3 ;注释 方括符 表
2、示可选项。标号代表指令所在地址, 1-8个字母 /数字,字母开头, “ :” 结尾。操作码就是指令功能助记符,指令实体。操作数是指令操作的对象。分为目的操作数和源操作数。注释是对该指令的解释和说明,是指令的非执行部分,可省略,前面必须加 “ ;” 。3.4.2.2 伪指令汇编语言源程序是由汇编语句组成的,一般情况下,汇编语言语句可分为指令性语句和指示性语句。 指令性语句(即汇编指令)指令性语句是进行汇编语言程序设计的可执行语句,每条指令都产生相应的机器语言的目标代码。源程序的主要功能是由指令性语句去完成的。 指示性语句(即伪指令)伪指令伪指令是控制汇编过程的一些命令,是程序员通知汇编程序在进行
3、汇编时的一些指示。没有对应的机器码,不产生目标代码程序,不影响程序的执行。1).伪指令主要用来指定程序或数据的起始位置,给出一些连续存放数据的地址或为中间运算结果保留一部分存储空间以及表示源程序结束等等。2).伪指令还可用来对符号 标号赋值。不同版本汇编语言,伪指令可能有所不同,但基本用法是相似的。1) 设置目标程序起始地址伪指令 ORG格式: 标号: ORG 地址功能: 规定其后面的目标程序或数据块的起始地址。伪指令 ORG放在一段源程序 (主程序、子程序 )或数据块的前面,说明紧跟在其后的程序段或数据块的起始地址就是 ORG后面给出的地址。例如: ORG 1000HSTART: MOV A
4、, #34H2) 结束汇编伪指令 END格式: 标号: END 功能: END是汇编语言源程序的结束标志,用于终止源程序的汇编工作。在 END以后所写的指令,汇编程序都不予处理。一个源程序只能有一个 END命令。3) 定义字节伪指令 DB格式: 标号: DB 字节常数或字符功能: 从指定地址单元开始存放若干个字节的数据或字符。字符若用引号括起来则表示 ASCII码。例如: ORG 2000HTAB1: DB 30H, 8AH, 7FH, 73DB 5, A, YES4) 定义字伪指令 DW格式: 标号: DW 16位数据表功能: DW伪指令告诉汇编程序从指定的地址单元开始定义若干个 16位数据
5、。对于 MCS-51单片机系统, 16位数据的高 8位存入低地址单元,低 8位存入高地址单元。例如: ORG 1500HTAB2: DW 1234H, 80H, AB汇编以后, (1500H)=12H, (1501H)=34H,(1502H)=00H, (1503H)=80H,(1504H)=41H, (1505H)=42H5) 赋值伪指令 EQU格式: 字符名称 EQU 赋值项功能: 将 EQU右边的值赋予 EQU左面用户定义的符号。赋值项可以是常数、地址、标号或表达式。例如: TEMP EQU R2PA8155 EQU 8001H汇编后 TEMP 对应寄存器 R2, PA8155值为 8001HEQU定义的符号必须先定义后使用, 且在同一个源程序中 , 同一个标号只能赋值一次 ,该语句通常放在程序开头。