- 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章 汇编语言程序设计;1.掌握顺序结构、分支结构、循环结构程序的设计方法。
2.掌握查表程序的设计方法。
3.掌握子程序的设计方法。
4.掌握单片机的伪指令。
;1.进一步熟悉Keil软件和程序调试。
2.熟练使用Proteus软件进行电路设计与仿真。
;4.1 汇编语言程序设计概述
4.2 汇编语言程序设计举例
4.3 软件调试仿真器Keil μVision应用 ;4.1.1汇编语言
汇编语言是介于机器语言和高级语言之间的计算机语言,是一种用符号表示的面向机器的程序设计语言。采用不同CPU的计算机有不同的汇编语言。汇编语言有如下的特点:
1) 用汇编语言编写的程序效率高。助记符指令与机器指令一一对应,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。
2) 使用汇编语言程序能直接管理和控制硬件设备。汇编语言能直接访问存储器及接口电路,也能处理中断。
3)不同计算机的汇编语言之间不能通用。汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言。
4)使用汇编语言编程比使用高级语言困难。因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。
;用汇编语言编写的程序成为汇编语言程序或源程序,其由汇编指令和伪指令两者构成。汇编语言程序不能直接在计算机上运行,需要将它翻译成机器语言程序,也就是目标代码程序,这个翻译过程称为汇编。完成汇编任务的程序成为汇编程序。
;使用汇编语言编写的源程序通常需要经过汇编程序编译成机器代码后才能被单片机执行。为了对源程序汇编,在源程序中必须使用一些“伪指令”,告诉汇编程序应该如何完成汇编工作,因此只有在汇编前的源程序中才有伪指令,而在汇编后没有机器代码产生。伪指令具有控制汇编程序的输入输出、定义数据和符号、条件汇编、分配存储空间等功能。
下面介绍MCS-51汇编语言程序中常用的伪指令。
1)ORG 汇编起始伪指令
本命令用于规定目标程序的起始地址,即此命令后面的程序或数据块的起始地址。
格式:
[标号:] ORG 16位地址
在汇编语言源程序的开始,通常都用一条ORG伪指令来规定程序的起始地址。如果不用ORG规定,则汇编得到的目标程序将从0000H开始。
;例如:
ORG 0030H
START:MOV A,#00H
…
即规定标号START代表地址0030H,目标程序的第一条指令从0030H开始。
在一个源程序中,可以多次使用ORG指令来规定不同的程序段的起始地址,但是ORG指令后的地址必须从小到大排列。
;2)END汇编结束伪指令
END是汇编语言源程序的结束标志,因此在整个源程序中只能有一条END命令,且位于程序的最后。如果END命令出现在中间,则其后面的源程序,汇编程序将不予处理。一个源程序只能有一条END命令。
3)EQU标号赋值伪指令
本命令用于给标号赋值。赋值以后,其标号值在整个程序有效。
命令格式:
字符名称 EQU 赋值项
其中赋值项可以是常数、地址、标号或表达式。其值为8位或16位二进制数。赋值以后的符号可以作为地址使用,也可以作为立即数使用。例如:
TEMP EQU 32H
表示标号 TEMP=32H,在汇编时,凡是遇到标号TEMP都使用32H来代替。
;4)DB定义字节命令
本命令用于从指定的地址开始,在程序存储器的连续单元中定义字节数据。
命令格式:
[标号:] DB 8位数表
字节数据可以是一个字节常数或字符,或用逗号分开的字节串,或用双引号括起来的字符串。例如:
DB “how are you”
DB 35H,42H,-1,10
;5)DW定义字命令
在程序存储器的连续单元中定义16位的数据字。存放时,数据字的高8位在低地址,低8位在高地址。
命令格式:
[标号:] DW 16位数表
例如:
ORG 3000H
DW 1234H, 55H,9876H
汇编后(3000H)=12H, (3001H)=34H, (3002H)=00H, (3003H)=55H, (3004H)=98H, (3005H)=76H
;6)DS定义存储区伪指令
在程序存储器中,从指定地址开始,保留指定数目的字节单元作为存储区,供程序运行使用。
命令格式:
[标号:] DS表达式
例如:
ORG 3000H
TAB: DS 08H
经汇编后,从地址3000H开始预留8个存储单元。
;7)BIT位定义伪指令
将位地址赋给字符名称。
命令格式:
字符名称 BIT 位地址
例如:
P10 BIT Pl.0
经汇编后,将P1.0的位地址赋给变量P10,在其后的程序中,凡是遇到P10就可以把它作为位地
文档评论(0)