- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 汇编语言程序设计
一、教学要求:
掌握:单片机汇编语言程序的基本结构以及加、减、乘、除运算及数制转换程序设计。
理解:查表、差值运算、译码等简单程序设计方法。
二、教学内容:
4.2 单片机汇编语言程序单片机汇编语言程序
三、教学重点:
四、教学难点:4-1 汇编程序约定
汇编语言程序:
用汇编语言编写的、完成特定功能的指令序列。
汇编程序:
能将汇编语言源程序转换成机器语言目标程序的系统软件。
汇编语言程序到机器语言程序的转换过程称为汇编。
1、手工汇编:人工查指令表汇编。用于设计短小程序或调试程序的场合。
2、机器汇编:用汇编程序进行汇编。
源程序使用机器汇编要考虑汇编程序的约定:
1)按指令格式和语法规则编写程序。 常数的表示:
十进制数:20
十六进制数:87H,0F0H
二进制数
字符: ‘H’
字符串: “Hello”
2)使用伪指令提供汇编信息。
汇编的主要任务:
1)确定程序中每条汇编语言指令的指令机器码。
2)确定每条指令在存储器中的存放地址。
3)提供错误信息。
4)提供目标执行文件(*.OBJ/*.HEX 和列表文件(*.LST)。
一、汇编语言指令类型:
1. 机器指令: 指令系统中的全部指令,每条指令有对应的机器代码。
2. 伪指令: 汇编控制指令,仅提供汇编信息,没有指令代码。
3. 宏指令:
宏汇编功能:将需要多次反复执行的程序段定义成一个宏指令名(宏定义),编程时,可在程序中使用宏指令名来替代一段程序(宏调用)。
宏定义过程:
宏指令名 MACRO 形式参数 … ;定义程序段 ENDM
宏调用过程: … 宏指令名 实际参数 … 宏指令名 实际参数
二、汇编控制指令 伪指令 :
常用伪指令及其功能:
1.ORG—起始地址指令:指明程序和数据块起始地址。
指令地址 机器码 源程序 ORG 2000H
2000H 78 30 MAIN:MOV R0,#30H
2002H E6 MOV A,@R0 … ORG 3000H
3000H 23 DB 23H,100,‘A’
3001H 64
3002H 41
2.DB—定义字节型常数指令。
例: DB 12H,100,‘A’
3. DW — 定义字型常数指令。
例: DW 1234H,5678H
4. EQU — 等值。为标号或标识符赋值。
X1 EQU 2000H
X2 EQU 0FH …
MAIN:MOV DPTR,#X1 ADD A,#X2
5. END — 结束汇编指令。
例: START: … … END START
4-2 汇编语言程序设计步骤
一、确定方案和计算方法;
二、了解应用系统的硬件配置、性能指标;
三、建立系统数学模型,确定控制算法和操作步骤;
四、画程序流程图; 表示程序结构和程序功能。
五、编制源程序。 1.合理分配存储器单元和了解I/O接口地址。 2.按功能设计程序,明确各程序之间的相互关系。 3.用注释行说明程序,便于阅读、修改和调试。
常用程序结构:
顺序程序、分支程序、循环程序、子程序。
4-3 顺序程序
顺序程序又称简单程序,程序走向只有一条路径。
例:双字节变补程序 设数据在R4R5中 :
MOV A,R5 ;取低字节
CPL A
ADD A,#01H ;低字节变补
MOV R5,A
MOV A, R4 ;取高字节
CPL A
ADDC A,#00H ;高字节变补
MOV R4,A
P84:例题(顺序)
[例4.1] 三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、54H和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H位中。
程序:
MOV R0,#52H
MOV R1,#55H
MOV A,@ R0
ADD A,@R1
MOV @R0 ,A
DEC R0
DEC R1
MOV A,@R0
ADDC A,@R1
MOV @R0,A
DEC R0
DEC R1
MOV A,@R0
ADDC A,@R1
MOV @R0,A
CLR A
ADDC A,# 00H
MOV R0,# 00H
MOV @R0,A
例:压缩式BCD码分解成为单字节BCD码。
MOV R0,#40H ;设指针
MOV A,@R0 ;取一个字节
MOV R2,A ;暂存
ANL A,#0FH ;高半字节清0
INC R0
MOV @R0,A ;保存数据个位
MOV A,R2
SWAP A ;十位换到低半字节
ANL A,#0FH
INC R0
M
您可能关注的文档
最近下载
- 个人开通天然气委托书范本 .pdf VIP
- 2025-2026学年人教版(2024)小学体育与健康二年级(全一册)教学设计(附教材目录).docx
- MG-WD系列采煤机说明书.doc
- 2025年河南省高考物理试卷(含答案解析).docx
- 学堂在线网课《生活英语读写》课后作业单元考核答案.docx VIP
- 2025年第42届全国中学生物理竞赛预赛试题(学生版+解析版) .pdf VIP
- 安全牛:API安全技术应用指南(2024版).pdf VIP
- 2024年浙江省中考统考科学试卷试题真题(含答案解析).pdf VIP
- 《吴门验方》学习笔记.docx VIP
- 新目标大学英语-《综合教学教程》第四册(WELearn答案解析).DOC VIP
文档评论(0)