- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【2017年整理】04单片机
第4章 8051单片机汇编语言程序设计 ;本章学习要点:
(1) 计算机编程基本知识;
(2) 汇编语言编程特点,编程方法、步骤;
(3) 单片机汇编语言程序结构、程序算法流程图设计;
(4) 单片机程序设计:算术运算、数值转换、查表及数值处理等程序设计。
单片机编程规范;
伪指令的作用。;4.1 汇编语言程序设计概述
4.1.1 机器语言、汇编语言和高级语言
程序设计的语言分为三种:
1.机器语言
用机器码编程;2.汇编语言
汇编语言特点:
面向机器的语言,编程者对单片机的硬件有相当深入的了解。
助记符指令和机器指令一一对应,用汇编语言编写的程序效率高,占用存储空间小,运行速度快。
用汇编语言能编写出最优化的程序。 ;3.高级语言
不受具体机器的限制,使用了许多数学公式和数学计算上的习惯用语,非常擅长于科学计算。常用的如BASIC、FORTRAN以及C语言等。
高级语言优点:通用性强,直观、易懂、易学,可读性好。
可以用C语言语言来进行单片机的应用程序。
对于程序的空间和时间要求很高的场合,汇编语言仍是必不可缺的。 ;编程应用:
C语言和汇编语言混合编程
在很多需要直接控制硬件的应用场合,则更是非用汇编语言不可
使用汇编语言编程,是单片机程序设计的基本功之一;4.1.2 单片机源程序的汇编
把源程序 “翻译”成机器代码的过程称为“汇编”。
汇编可分为手工汇编和机器汇编两类:
1.人工汇编
人工查表翻译指令。
2.机器汇编
用汇编软件把源程序翻译成机器代码。;4.1.3 伪指令
也称为汇编程序控制命令。向汇编程序发出的指示信息,告诉它如何完成汇编工作。
伪指令没有相应的机器代码产生。
常用的伪指令:
1.ORG(ORiGin)汇编起始地址命令
地址必须由小到大排列
地址不能交叉、重叠。; ORG 2500H
┇
ORG 3000H
┇
2. END(END of assembly)汇编终止命令
标示编译结束,终止源程序的汇编工作。
在整个源程序中只能有一条END命令,且位于程序的最后。
3.DB(Define Byte)定义字节命令
从指定的地址开始,在程序存储器的连续单元中定义字节数据。 ; ORG 2000H
DB 30H,40H,24,“C”,“B”
汇编后:
(2000H)= 30H
(2001H)= 40H
(2002H)= 18H(10进制数24)
(2003H)= 43H(字符“C”的ASCII码)
(2004H)= 42H(字符“B”的ASCII码)
DB功能是从指定单元开始定义(存储)若干个字节,10进制数自然转换成16进制数,字母按ASCII码存储。
;4.DW(Define Word)定义数据字命令
从指定的地址开始,在程序存储器的连续单元中定义16位的数据字。例如:
ORG 2000H
DW 1246H,7BH,10
汇编后:
(2000H)= 12H ;第1个字
(2001H)= 46H
(2002H)= 00H ;第2个字
(2003H)= 7BH
(2004H)= 00H ;第3个字(2005H)=0AH
(2005H)= 0AH ;5.EQU(EQUate)赋值命令
用于给字符串定义一个名字。赋值以后,其标号值在整个程序有效。例如:
TEST EQU 2000H ;定义字符串TEST=2000H
N EQU 10H ;定义常数N=10H
表示TEST=2000H,在汇编时,凡是遇到标号TEST时,均以2000H来代替。
6.BIT 位地址赋值命令
给可寻址的位单元起一个名字。
例如:JK1 BIT P1.0;7.DATA:把一个数或片内RAM单元赋值给“字符名称”
例如:SEN DATA 30H
同一个地址可以有多个名字
8.XDATA:把一个数或片外RAM单元赋值给“字符名称”
例如:ADIN XDATA 1FF0H
名字应该是字母开头的字母数字串;4.1.4 汇编程序分段格式
汇编语言的四分段格式如下:
标号字段 操作码字段 操作数字段 注释字段
START: MOV A,#00H ;0→A
MOV R1,#10 ;10→R1
MOV R2, ;3→R2
LOOP: ADD A,R2 ;(A)+(R2)→A
DJNZ R1,
文档评论(0)