Chapter3:汇编语言程序设计
文章目录
Chapter 3 汇编语言程序设计
3.1 概述
3.1.1 单片机有两种编程语言(源程序)
-
汇编语言和高级语言(主要是 C语言)。
- 汇编语言的目标程序占用存储空间小,执行快,能充分发挥计算机硬件功能。(第3章 要求)
- 高级语言编程快捷,但程序占用存储空间大,执行的实时较差。(第4章 C语言-不要求)
- 无论是高级语言还是汇编语言,源程序都要转换成**目标程序(机器语言)**计算机才能执行。
3.1.2 单片机的目标程序有两种格式(目标程序)
- 51单片机的目标程序有两种格式:
.BIN文件和 ·HEX文件
.BIN文件是由编译器生成的二进制文件,是程序的机器码。
·HEX文件是用ASCII码来存储,显示打印较方便。
3.1.3 汇编(编译)的两种方法:
-
汇编和编译:
- 将汇编语言源程序转换成目标程序的过程称为 汇编。
- 将高级语言源程序转换成目标程序的过程称为 编译。
-
汇编(编译)的方法有两种:
- 手工汇编:
人工查指令表,查出每条指令对应的机器代码。早期的计算机使用。 - 机器汇编:
用计算机中的汇编器(A51)对源程序进行汇编。 用机器汇编要提供给汇编程序一些信息和约定。这些由伪指令指定。
- 手工汇编:
-
机器汇编:
- 目前很多公司将编辑器、汇编器、编译器、连接/定位器等做成集成软件包,用户进入该集成环境,编辑好程序后,只需点击相应菜单就可以完成上述的各步,并且还有仿真调试功能
- 如Keil 、Proteus等软件(见教材第 13 章)
3.2 伪指令(7个)
-
伪指令为汇编程序(汇编器)提供信息的指令,它没有机器码,不被计算机执行。
-
常用伪指令(7个)【详细见ppt】
序号 指令 功能 1 ORG 起始指令,定义程序或数据块的起始地址 2 DB 字节定义,指示以标号为起始地址的单元里存放的数为字节数据 3 DW 字定义,指示以标号为起始地址的单元里存放的数为字数据 4 DS 保留字节,指示在程序存储器中保留以标号为起始地址的若干字节单元 5 EQU 等值指令,表示EQU两边的量等值,用于为标号或标识符赋值 6 BIT 位定义,标号,同EQU指令,不过定义的是位操作地址 7 END 汇编结束
3.3 顺序程序设计
3.4 分支程序设计
*其余例子看ppt
3.5 循环程序设计
*其余例子看ppt
3.6 位操作程序设计(单片机特有)
位操作:可以方便实现各种复杂的逻辑运算,软件代替硬件,节省成本,但比硬件算的慢。
3.7 子程序设计
-
子程序通过ACALL和LCALL两条指令调用,必须以RET指令结尾。
子程序结构节省存储单元,使程序简短、清晰,是程序设计的重要技巧之一。 -
在调用子程序时,有以下几点应注意:
1)保护现场。
2)设置入口参数和出口参数。
3)子程序可以嵌套。 -
例子:
用程序实现 c = a2 + b2,设a,b均小于10。a存放在31H单元,b存放在32H单元,把 c 存入34H和33H单元。(和要求为BCD码)。