4第四章汇编语言程序设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.2 汇编语言程序设计
4.2.6 位操作程序设计
例6.1 编写程序以实现下图所示的逻辑运算电路。
START:
MOV ORL
C, P2.2 C, TF0
ANL
MOV MOV ORL ANL ANL MOV
C, P1.1
F0, C C, IE1 C, /25H C, F0 C, /26H P1.3, C
例3.1 设两个双字节无符号数,分别存放在R1R0和R3R2中,高字节在前,低字
节在后、编程使两数相加,和数存放到R2R1R0中。
方法:与笔算类同,先加低位,
后加高位,无须画流程图
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.4 分支程序设计
分支程序:利用条件转移指令形成不同的程序分支。
4.子程序返回 ,使用RET。
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.7 子程序设计
例7.1 用程序实现c=a2+b2。设a、b均小于10。a存放在31H单元,b存放
在32H单元,把c存放在33H单元
ORG 2000H MOV A, 31H ;取a ACALL SQR ;求a2 MOV R1, A ;存a2 MOV A, 32H ;取b ACALL SQR ;求b2 ADD A, R1 ; 求a2+b2 MOV 33H, A ;存结果 HERE: SJMP HERE SQR: INC A ;A加1,表格在RET指令后 MOVC A, @A+PC ;查表 RET ;子程序返回,1字节指令 TABl: DB 0,1,4,9,16, 25,36,49,64,81 ;表格 END
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
Fra Baidu bibliotek
4.2.4 分支程序设计
JZ rel; (A)=0 转移 (源PC)+2+rel→→( PC); (A )≠0 顺序执行(源PC)+2→→( PC);
JNZ rel;(A) ≠0 转移 (源PC)+2+rel→→( PC); (A) =0 顺序执行(源PC)+2→→( PC);
R3作为结果的低字节和高字节寄存器。
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.5 循环程序设计
例5.2 设计一个延时10ms的子程序,已知单片机使用的晶振为6MHz。 分析:延时时间与两个因素相关:一个是晶振频率;另一个是循环次数。如晶振
主频为6MHz,则一个机器周期为2us。用单循环可以实现1ms延时,外循环10次即 可达10s延时。
DJNZ Rn,rel; ( Rn ) -1 →→ ( Rn ) ; ( Rn ) ≠ 0 转移 (源PC)+2+rel→→( PC); DJNZ direct,rel; ( direct ) -1 →→ (direct ) ; (direct ) ≠ 0 转移 (源PC)+3+rel→→( PC);
例4.2 设变量x存在30H单元,按如下关系式求函数y的值并存入31H中。
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.4 分支程序设计 2.多分支结构 例4.3 根据R3的内容转向对应的程序,R3的内容为0~n,处理程序的入口地 址分别存放在PR0~PRn(n<128)
分析: 将PR0~PRn的入口地址放在表格中,每一项占两个单元,PRn在
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.1汇编语言程序设计步骤 1. 确定数学模型:根据要解决的实际问题,分析并抽象出数学模型 2. 确定算法:确定一种简洁的算法
3. 设计程序流程图:把解题的思路和算法的步骤画成程序流程图
4. 分配寄存器和存储器单元
5. 编写汇编语言源程序:选择合适的指令和寻址方式编址源程序,并
循环程序的控制
循环条件控制:先判断再处理,即先判断是否满足循环条件,若不满足,就不 循环;常用比较转移指令或条件转移指令进行控制 循环次数控制:先处理再判断。循环次数已知,即循环执行一遍后,通过循环 次数判断下一轮是否需要进行。常用DNJZ指令进行控制
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.4 分支程序设计 1.单分支结构
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.4 分支程序设计 1.单分支结构
例4.1 设内部RAM 30H,31H单元中存放两个无符号数,试比较它们的大小。将较 小的数存放在30H单元中,较大的数存放在31H单元中。 分析:通过两数相减,根据C的状态决定程序的走向。可用JC指令进行判断。
功能:表示在程序存储器中以标号为起始地址的单元里存放的数为字节数据 (8位二进制数)
表示字节数据73H, 04H, 64H, 20H, 00H, FEH, 41H, 42H, 43H一次存入 由TABLE标号为起始地址即2000H单元开始的连续存储器单元中。
单片机与接口技术·汇编语言
4.1 汇编语言的基本概念
船舶与海洋工程学院
第四章 汇编语言程序设计
第一节 汇编语言的基本概念 第二节 汇编语言程序设计 4.2.1 汇编语言程序设计步骤 4.2.2 顺序程序 4.2.3 分支程序 4.2.4 循环程序 4.2.5 位操作程序 4.2.6 子程序
要求:1. 掌握基本伪指令 2. 掌握顺序、分支、循环、子程序的编写过程 3. 能独立编写小程序
4.2 汇编语言程序设计
4.2.5 循环程序设计
程序中的某些指令需要反复执行多次,采用循环程序的方式。 循环程序的结构
循环初值:对循环次数、初值变量进行设置 循环体:循环结构的核心部分,需要多次执行
循环控制:循环程序的控制部分,通过循环变量和结束条件进行控制
结束:对循环程序执行的结果进行分析和存放。
进行必要的注释。 6. 调试程序:将源程序汇编成机器码,运行,调试。
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.2汇编语言程序流程图符号
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.3 顺序程序设计
顺序程序:一种最简单、最基本的程序。
特点:程序按照编写的顺序依次往下执行每一条指令,直到最后一条。
功能:给出程序存放的起始地址,表示此语句后面的程序或数据块以 nn为起
始地址连续存放在程序存储器中
ORG指令在一个源程序中可以多次使用,以规 定不同程序段或数据块的起始位置,所规定
的地址必须从小到大,并且不允许重叠。
单片机与接口技术·汇编语言
4.1 汇编语言的基本概念
4.1.2 伪指令 2. 字节定义指令 DB (Define Byte) 格式: 标号: DB (字节常数或表达式);
单片机与接口技术·汇编语言
4.1 汇编语言的基本概念
4.1.1 程序设计语言 一、机器语言:用0和1表示的最原始的程序设计语言。 特点:计算机能直接识别和执行、速度快;人工编写繁琐、易错、 难认、难记 二、汇编语言:符号语言。汇编后才能被计算机执行 特点:指令容易记忆、理解,可读性好; 汇编语言与机器语言一 一对应,编写者必须了解硬件结构、指令系统;程序不能移植(但执行效率 高) 三、高级语言:接近于人的常用语言形式,面向过程 特点:简短、易懂、编程快、有通用性,便于移植。语言的编译 和解释程序大、目标程序大、执 行效率低。
单片机与接口技术·汇编语言
4.1 汇编语言的基本概念
4.1.2 伪指令 4. 保留字节指令 DS (Define Storage) 格式: 标号: DS (数值表达式);
功能:表示在程序存储器中保留以标号为起始地址的若干字节单元,其单元 个数由数值表达式指定。
例 L1:DS 32
表示从L1地址开始保留32个存储单元 对于51单片机,DB、 DW、DS 等伪指令只能用于程序存储器,不能 对数据存储器使用。
分支程序的特点是包含有条件判断,符合条件和不符合条件的有不同的处 理路径。 分支程序根据实际问题中给定的判断条件,一般分为单分支程序和多重分 支程序。 1.单分支结构
程序只有两个出口。通常用转移指令来选择。可实现单分支程序转移的指令有: 位条件转移指令,如 JC 、 JNC 、 JB 、 JNB 和 JBC 等,条件转移指令,如 JZ 、 JNZ、DJNZ等
单片机与接口技术·汇编语言
4.1 汇编语言的基本概念
4.1.2 伪指令 5. 等值指令 EQU (Equate) 格式: 标号: EQU (数据或表达式);
功能:表示把数据或表达式赋值给标号。
例 ABC EQU 32H
表示给标号ABC赋值32H 用EQU语句给标号赋值后,在整个程序中该标号的值就固定不能更改 了。
4.1.2 伪指令 3. 字定义指令 DW (Define Word) 格式: 标号: DW (字常数或表达式);
功能:表示在程序存储器中以标号为起始地址的单元里存放的数为字数据 (16位二进制数),每个数据需要两个单元存放
表示从1000H开始按顺序存放 01H, 00H, 34H, 56H, 13H, 57H 一般以DB来定义数据,DW来定义地址
都会进行堆栈操作。
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.7 子程序设计
子程序时应注意内容: 1.子程序名 第一条指令前加标号,该标号为子程序名。 即满足入口条件和出口条件
2.正确的传送参数
入口条件:执行子程序所必须的有关源数据输入 出口条件:子程序执行完毕计算结果输出 3.保护现场和恢复现场 保护现场:进入子程序后,将需要保存的寄存器的内容保存到堆栈。 恢复现场:子程序返回前,将保存在堆栈中的内容还原到寄存器中。
内循环的时间计算 (1 1 2) 2 s MT 1000 s
MT 125 7DH
总的延时时间计算
1 1 1 1 2 125 2 10 2 s 10062 s 10.062ms
单片机与接口技术·汇编语言
SJMP
$
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.7 子程序设计 在同一个程序中,需要多次进行一些相同的计算和操作,可将这些相同的
操作编写为一个独立的程序段,称为子程序。
调用子程序的程序称为主程序,子程序也可调用子程序。调用子程序通过 子程序调用指令 LCALL和 ACALL实现。调用子程序和子程序执行完成返回,
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.4 分支程序设计
2.多分支结构
程序有两个以上的出口。
通常用间接转移指令JMP @A+DPTR 和比较指令如CJNE来选择。
JMP @A+DPTR;
(A)+(DPTR) →(PC)
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.4 分支程序设计 2.多分支结构
4.2.5 循环程序设计
循环条件控制
循环次数控制
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.5 循环程序设计
例5.1 在内部RAM 30H~4FH的32个单元中,存放着32个字节的无符号数。求这32
个无符号数之和。(设和<FFFFH)并存入内部RAM 51H,50H中。
分析:这是重复相加问题。设用R0作加数地址指针,R7作循环次数计数器,A和
单片机与接口技术·汇编语言
4.1 汇编语言的基本概念
4.1.2 伪指令 6. 位定义指令 BIT 格式: 标号 BIT 位地址;
功能:用于给标号赋值位地址,位地址可以是绝对地址,也可以是符号地址。
例 AIC BIT P1.1
AIC BIT 91H 表示在程序中AIC就是SFR中的91H位。
7. 汇编结束命令 END 格式: END
表中的偏移量为2n,因此将R3的内容乘2即得到PRn在表中的偏移地址。
从偏移地址2n和2n+1中分别取出高8位和低8位地址送入DPTR中,用JMP @A+DPTR 即可移到PRn的入口执行。
单片机与接口技术·汇编语言
4.2 汇编语言程序设计
4.2.4 分支程序设计 2.多分支结构
单片机与接口技术·汇编语言
功能:表示程序的结束。程序的结尾必须要有END语句,而且只能有一条。
单片机与接口技术·汇编语言
4.1 汇编语言的基本概念
4.1.2 伪指令
单片机与接口技术·汇编语言
4.1 汇编语言的基本概念
4.1.3 汇编语言的语句格式
标号段: 操作码
操作数
;注释
1.标号段:将指令首字节的地址赋给标号
2.操作码段:指令操作的性质和控制要求 3.操作数段:操作的对象 4.注释段:使程序具有可读性
单片机与接口技术·汇编语言
4.1 汇编语言的基本概念
伪指令:控制汇编的指令。它不是控制单片机操作的指令,因此不是可执 行指令,无机器代码。
单片机与接口技术·汇编语言
4.1 汇编语言的基本概念
4.1.2 伪指令 伪指令:控制汇编的指令。它不是控制单片机操作的指令,因此不是可执
行指令,无机器代码。
1. 起始指令 ORG (origin) 格式: ORG nn;
相关文档
最新文档