51单片机 汇编程序的编写

51单片机 汇编程序的编写

ID:5994579

大小:239.00 KB

页数:29页

时间:2017-11-15

51单片机 汇编程序的编写_第1页
51单片机 汇编程序的编写_第2页
51单片机 汇编程序的编写_第3页
51单片机 汇编程序的编写_第4页
51单片机 汇编程序的编写_第5页
资源描述:

《51单片机 汇编程序的编写》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1第5讲:汇编程序的编写电气工程系赵志衡Tel:86413623E-mail:zhzhhe@hit.edu.cnMCS-51单片机原理及设计2课程主要内容汇编程序的基本知识常用汇编程序设计方法MCS-51汇编程序的编写3汇编程序的基本知识汇编指令的基本结构:[标号]:操作码助记符[第1操作数],[第2操作数];[注释]Loop1:mova,#0ffh;累加器A赋值为ffmova,#10hmova,#16标号:表示该指令所在的符号地址,一般由字母和数字组成,第一位为字母,其余位为字母、数字任选。操作码助记符、第1操作数和第2操作数:指

2、令的核心部分。对于某些指令可能不存在完整的两个操作数。注释:是由用户加入的文本,对汇编程序不起任何作用,只是方便阅读。*第1操作数又称目的操作数,第2操作数又称源操作数**51不区分大小写4汇编程序的基本知识汇编语言的构成指令性语句(51指令系统)指示性语句:伪指令伪指令:伪指令不属于MCS51指令系统中的指令,它是程序员发给汇编程序的命令,也称为汇编程序控制命令。程序设计流程5常用的部分伪指令ORGENDEQUDB6伪指令简介ORG起点指令ORGaddr16org0000hORG指令用于指明程序代码或数据块在存储器中的起始地址。

3、addr16代表一个16位地址,即程序或数据块的首地址。EQU等值指令符号EQU表达式aaaequ30hmova,aaaEQU指令用于为程序中的任意符号赋值。程序中的常量通常可以用符号代替,便于修改。主程序前要先用equ指令为常量符号赋值。7伪指令简介DB定义字节指令[标号]:DB数据列表DB指令用于定义字节型数据或数据串,并将数据作为常数填入指定的存储器单元中。END结束汇编指令[标号]:ENDEND指令置于程序结尾处,作为源程序结束的标志。8程序设计流程(1)明确要求和要达到的目的(2)确定解决问题的计算方法和步骤(

4、3)画出流程图(4)分配内存地址(5)按流程图编写程序(6)上机汇编、调试、修改直至最后确定源程序9程序结构:顺序结构循环结构分支结构子程序结构复合结构:多种程序结构的组合……10简单程序(顺序结构)大量使用数据传送类指令注意正确选择指令以提高效率11将20H单元内的压缩BCD码变换成相应ASCII码放在21H、22H中Org0hLjmp2000hORG2000HMOVR0,#22HMOV@R0,#00MOVA,20HXCHDA,@R0ORL22H,#30HSWAPAORLA,#30HMOV21H,Az:SJMPzEND15BYTE

5、,11TMOVA,20HMOVB,#10HDIVABORLB,#30HMOV22H,BORLA,#30HMOV21H,ASJMP$END15BYTE14T12BCD码与ASCII码对照0——30H1——31H2——32H3——33H4——34H5——35H6——36H7——37H8——38H9——39H13分支程序根据程序要求无条件或有条件改变程序执行的顺序,选择程序的流向特点:程序中含有转移类指令关键:正确选用转移指令14正确运用转移指令无条件分支程序程序设计者事先设计好的LJMP有条件分支程序根据已经执行的程序中标志位、A或内部

6、RAM的某些位的结果决定程序的流向JZ/JNZ、CJNE、DJNZ、位控制转移类指令(JC、JNC、JB、JNB、JBC)15注意使用条件转移指令形成分支前一定保证供条件转移指令进行判别的条件是有意义的。JCLOOP正确选定所用的转移条件及转移目标地址16循环程序循环初始化循环次数计数器、工作寄存器设初值等循环体尽量简练循环控制检查结束条件,及时退出循环17注意循环嵌套允许外重循环嵌套内重循环循环体不能交叉不能从循环程序外部跳入循环程序内部18例:10个数据排序常用气泡法(两两比较法):它先使E0和E1进行比较,若E0>E1,则两数

7、交换,否则不动,然后E1和E2进行比较,按同样的原则,决定是否交换,一直比较下去,最后完成E8和E9的比较及交换。经过10-1次比较后,E9位置必然得到数组中的最大值。犹如一个气泡冒到水顶,如此循环即可完成排序。19将RAM地址为50H~59H中的10个数据,从小到大进行排序(实验1)Sizeequ10Changeequ00HSort:movrO,#50Hmovr7,#Size-lclrChangeGoon:Mova,@r0Incr0movB,@r0cjnea,B,NotEqualsjmpNextNotEqual:jcNextset

8、bChangexcha,@r0decrOxcha,@r0incrONext:Djnzr7,GoonJbChange,SortLjmp$end20查表程序的设计主要用于复杂代码转换显示数据补偿:传感器补偿复杂函数计算:Y=SIN(X)2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。