微机原理与应用第四章PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字符串,数据符号。
4、汇编结束命令END 格式:[标号:] END 功能:END是汇编Байду номын сангаас言源程序的汇编结束标志,在它后面所
写的指令均不予处理。
5、等值命令EQU 格式:字符名称 EQU 数或汇编符号 功能:将一个数或特定的汇编符号赋予规定的字符名称。先
定义后使用。
三、汇编语言程序的结构
1、程序设计的基本步骤 一般步骤为:
2、定义字节伪指令DB(Define Byte) 格式:[标号:] DB X1,X2,~Xn
Xn:单字节二进制、十进制、十六进制数,或以‘ ’括起 来的字符串,数据符号。 功能:定义程序存储器从标号开始的连续单元,用来存放常
数、字符和表格。 3、定义字伪指令DW(Define Word) 格式:[标号:] DW Y1,Y2,~Yn Yn:双字节二进制、十进制、十六进制数,或以‘ ’括起来 的
言的过程。分为计算机汇编和人工汇编两种。 汇编程序:具有完成汇编功能的程序。 目标程序:汇编语言源程序经过汇编得到的机器语言程序。 伪指令:提供汇编用控制信息的指令,只能被汇编程序所识别,
不是单片机的CPU可执行的指令。
1、定位伪指令ORG(Origin) 格式: [标号:] ORG m
m:16位二进制数,代表地址。 功能:得到机器语言程序的起始地址。
SJMP OVER LAB1: MOV A, #1 OVER: MOV 31H, A
SJMP $
(2)多重分支结构
利用MCS-51单片机的散转指令JMP @A+DPTR, 可方便地实现多重分支控制,因此,又称为散转程序。 假定多路分支的最大序号为n,则分支的结构如图所示。
三、循环程序设计
1、循环程序的结构
END
二、分支程序设计
1、单分支程序
单分支结构程序使用转移指令实现,即根据条件 对程序的执行进行判断,满足条件是转移执行,否则 顺序执行。 在MCS-51指令系统中条件转移指令有: (1)判A转移指令JZ、JNZ; (2)判位转移指令JB、JNB、JBC、JC、JNC; (3)比较转移指令CJNE; (4)减1不为0转移指令DJNZ;
循环程序包括以下四个部分: 置循环初值 循环体 循环控制变量修改 循环终止控制
常用于循环控制的指令有: DJNZ、CJNE、JC、JNC 等控制类指令。
(1)分析题意,明确要求; (2)建立思路,确定算法; (3)编制框图,绘出流程; (4)编写程序,上机调试;
程序结构有简单顺序、分支、循环和子程序等 2、画流程图
画流程图是指用各种图形、符号、指向线等来说明程序
设计的过程。国际通用的图形和符号说明如下:
椭圆框:起止框,在程序的开始和结束时使用。 矩形框:处理框,表示要进行的各种操作。
对于偏移量 rel (1)可以是数值、标号地址、表达式
(2)使用特殊符号“$”,它代表本条转移指令所在的地址, 如LJMP $(死循环)
(3)实际编程时,凡指令中用到地址 (rel、 addr11 、 addr16等)都可用标号地址代替实际地址,而地址的运算有 汇编程序完成。
二、常用伪指令 汇编:将计算机不可直接识别的汇编语言源程序翻译成机器语
菱形框:判断框,表示条件判断,以决定程序的流向。 指向线:流程线,表示程序执行的流向。 圆 圈:连接符,表示不同页之间的流程连接。 各种几何图形符号如下图所示。
§4-2 汇编语言程序的基本结构 形式
一、简单程序的设计
例4-1 已知两个压缩BCD码分别 放在内部RAM的31H30H和33H 32H等 4个单元中,试编程求和,结果存入 R4R3R2中。 分析:流程如图:
1 X>0
Y=
0 X=0 的要求给Y赋值
-1 X<0
分析:X是有符号数,判断符号位是0还是1可利用JB或JNB 指令。
判断X是否等于0则直接可以使用累加器A的判0指令。
流程、程序如下页:
ORG 0000H LJMP START ORG 0040H START: MOV A,30H JZ OVER JNB ACC.7,LAB1 MOV A, #0FFH
程序如下: MAIN:
HERE:
ORG 0000H
LJMP MAIN
ORG 0040H MOV A,30H ADD A,32H DA A MOV R2,A MOV A,31H ADDC A,33H DA A MOV R3,A CLR A MOV ACC.0,C MOV R4,A SJMP HERE
第四章 汇编语言程序设计
§4-1 汇编语言程序设计基本概念 §4-2 汇编语言程序的基本结构形式
§4-1 汇编语言程序设计基本概念
一、MCS-51指令操作数说明 1、语句格式 [标号:] 操作码 [操作数(目的操作数,源操作数)] [;注释] 2、操作数 对于立即数 #data (1)立即数188,可表示为 #10111100B、#0BCH、#188 (2)MOV DPTR,# BLOCK;BLOCK为定义过的标号地 址 对于直接地址 direct (1)二进制、十进制、十六进制数,MOV A,30H (2)定义过的标号地址,AGAIN:SJMP AGAIN (3)表达式,如SUM+2,其中SUM为定义过的标号地址 (4) SFR寄存器名,如SP、DPH、DPL等
例4-2 假定在外部RAM中有100H、101H和102H共3个 连续单元,其中100H、101H单元中分别存放着两个8 位无符号数,要求找出其中的大数并存入102H单元。
分析:两个无符号数的大小比较可利用两数相减 是否有借位来判断,流程图和程序如下所示:
ORG LJMP ORG START:CLR MOV MOVX MOV INC MOVX SUBB JC MOVX SJMP BIG1:XCH BIG2:INC MOVX SJMP
0000H
START
0040H
C DPTR,#100H A, @DPTR R7, A DPTR A, @DPTR A, R7 BIG1 A, @DPTR BIG2 A, R7 DPTR @DPTR,A $
2、多分支程序
(1)嵌套分支结构
例4-3 设变量X存放于30H单元,函数值Y存放31H单元。试按照 式:
4、汇编结束命令END 格式:[标号:] END 功能:END是汇编Байду номын сангаас言源程序的汇编结束标志,在它后面所
写的指令均不予处理。
5、等值命令EQU 格式:字符名称 EQU 数或汇编符号 功能:将一个数或特定的汇编符号赋予规定的字符名称。先
定义后使用。
三、汇编语言程序的结构
1、程序设计的基本步骤 一般步骤为:
2、定义字节伪指令DB(Define Byte) 格式:[标号:] DB X1,X2,~Xn
Xn:单字节二进制、十进制、十六进制数,或以‘ ’括起 来的字符串,数据符号。 功能:定义程序存储器从标号开始的连续单元,用来存放常
数、字符和表格。 3、定义字伪指令DW(Define Word) 格式:[标号:] DW Y1,Y2,~Yn Yn:双字节二进制、十进制、十六进制数,或以‘ ’括起来 的
言的过程。分为计算机汇编和人工汇编两种。 汇编程序:具有完成汇编功能的程序。 目标程序:汇编语言源程序经过汇编得到的机器语言程序。 伪指令:提供汇编用控制信息的指令,只能被汇编程序所识别,
不是单片机的CPU可执行的指令。
1、定位伪指令ORG(Origin) 格式: [标号:] ORG m
m:16位二进制数,代表地址。 功能:得到机器语言程序的起始地址。
SJMP OVER LAB1: MOV A, #1 OVER: MOV 31H, A
SJMP $
(2)多重分支结构
利用MCS-51单片机的散转指令JMP @A+DPTR, 可方便地实现多重分支控制,因此,又称为散转程序。 假定多路分支的最大序号为n,则分支的结构如图所示。
三、循环程序设计
1、循环程序的结构
END
二、分支程序设计
1、单分支程序
单分支结构程序使用转移指令实现,即根据条件 对程序的执行进行判断,满足条件是转移执行,否则 顺序执行。 在MCS-51指令系统中条件转移指令有: (1)判A转移指令JZ、JNZ; (2)判位转移指令JB、JNB、JBC、JC、JNC; (3)比较转移指令CJNE; (4)减1不为0转移指令DJNZ;
循环程序包括以下四个部分: 置循环初值 循环体 循环控制变量修改 循环终止控制
常用于循环控制的指令有: DJNZ、CJNE、JC、JNC 等控制类指令。
(1)分析题意,明确要求; (2)建立思路,确定算法; (3)编制框图,绘出流程; (4)编写程序,上机调试;
程序结构有简单顺序、分支、循环和子程序等 2、画流程图
画流程图是指用各种图形、符号、指向线等来说明程序
设计的过程。国际通用的图形和符号说明如下:
椭圆框:起止框,在程序的开始和结束时使用。 矩形框:处理框,表示要进行的各种操作。
对于偏移量 rel (1)可以是数值、标号地址、表达式
(2)使用特殊符号“$”,它代表本条转移指令所在的地址, 如LJMP $(死循环)
(3)实际编程时,凡指令中用到地址 (rel、 addr11 、 addr16等)都可用标号地址代替实际地址,而地址的运算有 汇编程序完成。
二、常用伪指令 汇编:将计算机不可直接识别的汇编语言源程序翻译成机器语
菱形框:判断框,表示条件判断,以决定程序的流向。 指向线:流程线,表示程序执行的流向。 圆 圈:连接符,表示不同页之间的流程连接。 各种几何图形符号如下图所示。
§4-2 汇编语言程序的基本结构 形式
一、简单程序的设计
例4-1 已知两个压缩BCD码分别 放在内部RAM的31H30H和33H 32H等 4个单元中,试编程求和,结果存入 R4R3R2中。 分析:流程如图:
1 X>0
Y=
0 X=0 的要求给Y赋值
-1 X<0
分析:X是有符号数,判断符号位是0还是1可利用JB或JNB 指令。
判断X是否等于0则直接可以使用累加器A的判0指令。
流程、程序如下页:
ORG 0000H LJMP START ORG 0040H START: MOV A,30H JZ OVER JNB ACC.7,LAB1 MOV A, #0FFH
程序如下: MAIN:
HERE:
ORG 0000H
LJMP MAIN
ORG 0040H MOV A,30H ADD A,32H DA A MOV R2,A MOV A,31H ADDC A,33H DA A MOV R3,A CLR A MOV ACC.0,C MOV R4,A SJMP HERE
第四章 汇编语言程序设计
§4-1 汇编语言程序设计基本概念 §4-2 汇编语言程序的基本结构形式
§4-1 汇编语言程序设计基本概念
一、MCS-51指令操作数说明 1、语句格式 [标号:] 操作码 [操作数(目的操作数,源操作数)] [;注释] 2、操作数 对于立即数 #data (1)立即数188,可表示为 #10111100B、#0BCH、#188 (2)MOV DPTR,# BLOCK;BLOCK为定义过的标号地 址 对于直接地址 direct (1)二进制、十进制、十六进制数,MOV A,30H (2)定义过的标号地址,AGAIN:SJMP AGAIN (3)表达式,如SUM+2,其中SUM为定义过的标号地址 (4) SFR寄存器名,如SP、DPH、DPL等
例4-2 假定在外部RAM中有100H、101H和102H共3个 连续单元,其中100H、101H单元中分别存放着两个8 位无符号数,要求找出其中的大数并存入102H单元。
分析:两个无符号数的大小比较可利用两数相减 是否有借位来判断,流程图和程序如下所示:
ORG LJMP ORG START:CLR MOV MOVX MOV INC MOVX SUBB JC MOVX SJMP BIG1:XCH BIG2:INC MOVX SJMP
0000H
START
0040H
C DPTR,#100H A, @DPTR R7, A DPTR A, @DPTR A, R7 BIG1 A, @DPTR BIG2 A, R7 DPTR @DPTR,A $
2、多分支程序
(1)嵌套分支结构
例4-3 设变量X存放于30H单元,函数值Y存放31H单元。试按照 式: