- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 汇编语言程序设计
一、教学要求:
掌握:单片机汇编语言程序的基本结构以及加、减、乘、除运算及数制转换程序设计。
理解:查表、差值运算、译码等简单程序设计方法。
二、教学内容:
4.1 汇编语言程序设计概述
4.2 单片机汇编语言程序的基本结构形式
4.3 单片机汇编语言程序程序设计举例
4.4 单片机汇编语言的伪指令
4.5 单片机汇编语言源程序的编辑和汇编
三、教学重点:
单片机汇编语言程序的基本结构及程序设计方法。
四、教学难点:
加、减、乘、除运算及数制转换程序设计。
五、建议学时:4学时。
六、教学内容:
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 @
文档评论(0)