单片机汇编语言程序设计课件.ppt

单片机汇编语言程序设计课件.ppt

ID:57013522

大小:238.50 KB

页数:65页

时间:2020-07-26

单片机汇编语言程序设计课件.ppt_第1页
单片机汇编语言程序设计课件.ppt_第2页
单片机汇编语言程序设计课件.ppt_第3页
单片机汇编语言程序设计课件.ppt_第4页
单片机汇编语言程序设计课件.ppt_第5页
资源描述:

《单片机汇编语言程序设计课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章MCS-51单片机汇编语言程序设计4.1汇编语言程序设计概述4.2基本程序设计4.3查表程序设计4.4子程序设计4.5数值转换4.6运算类程序设计4.1汇编语言程序设计概述4.1.1机器语言、汇编语言和高级语言用于程序设计的语言基本上分为3种:机器语言、汇编语言和高级语言。1.机器语言二进制代码表示的指令、数字和符号简称为机器语言。不易懂,难记忆,易出错。2.汇编语言英文助记符表示的指令称为符号语言或汇编语言将汇编语言程序转换成为二进制代码表示的机器语言程序称为汇编程序经汇编程序“汇编(翻

2、译)”得到的机器语言程序称为目标程序,原来的汇编语言程序称为源程序。汇编语言特点:面向机器的语言,程序设计员须对MCS-51的硬件有相当深入的了解。助记符指令和机器指令一一对应,用汇编语言编写的程序效率高,占用存储空间小,运行速度快,用汇编语言能编写出最优化的程序。能直接管理和控制硬件设备(功能部件),它能处理中断,也能直接访问存储器及I/O接口电路。汇编语言和机器语言都脱离不开具体机器的硬件,均是面向“机器”的语言,缺乏通用性。3.高级语言不受具体机器的限制,使用了许多数学公式和数学计算上的习

3、惯用语,非常擅长于科学计算。常用的如BASIC、FORTRAN以及C语言等。高级语言优点:通用性强,直观、易懂、易学,可读性好。使用C语言(C51)、PL/M语言来进行MCS-51的应用程序设计。对于程序的空间和时间要求很高的场合,汇编语言仍是必不可缺的。4.1.2汇编语言程序设计步骤(1)分析问题,确定算法(2)根据算法,画出程序框图(3)分配内存工作区及有关端口地址(4)编写程序养成在程序的适当位置上加上注释的好习惯。(5)上机调试编写完毕的程序,必须“汇编”成机器代码,才能调试和运行,调试

4、与硬件有关程序还要借助于仿真开发工具并与硬件连接。4.1.3汇编语言源程序的汇编汇编语言源程序“翻译”成机器代码(指令代码)的过程称为“汇编”。汇编可分为手工汇编和机器汇编两类:手工汇编人工查表翻译指令。相对转移指令的偏移量的计算不但麻烦,且容易出错。机器汇编用编辑软件进行源程序的编辑。编辑完成后,生成一个ASCII码文件,扩展名为“.ASM”。然后在微计算机上运行汇编程序,把汇编语言源程序翻译成机器代码。生成一个二进制文件,扩展名为“.OBJ”。交叉汇编—汇编后的机器代码是在另一台计算机(这里

5、是单片机)上运行。4.2基本程序设计4.2.1顺序程序设计例1两个无符号双字节数相加。设被加数存放于内部RAM的40H(高位字节),41H(低位字节),加数存放于50H(高位字节),51H(低位字节),和数存入40H和41H单元中。40H41H50H51H40H41H+@R0@R1A@R0程序如下:START:CLRC;将Cy清零MOVR0,#41H;将被加数地址送数据指针R0MOVR1,#51H;将加数地址送数据指针R1AD1:MOVA,@R0;被加数低字节的内容送入AADDA,@R

6、1;两个低字节相加MOV@R0,A;低字节的和存入被加数低字节中DECR0;指向被加数高位字节DECR1;指向加数高位字节MOVA,@R0;被加数高位字节送入AADDCA,@R1;两个高位字节带Cy相加MOV@R0,A;高位字节的和送被加数高位字节RET例2将两个半字节数合并成一个一字节数。设内部RAM40H#,41H单元中分别存放着8位二进制数,要求取出两个单元中的低半字节,并成一个字节后,存入50H单元中。40H41Hm1n1m2n250Hn1n2START:MOVR1,#40H

7、;设置R1为数据指针MOVA,@R1;取出第一个单元中的内容ANLA,#0FH;取第一个数的低半字节SWAPA;移至高半字节INCR1;修改数据指针XCHA,@R1;取第二个单元中的内容ANLA,#0FH;取第二个数的低半字节ORLA,@R1;拼字MOV50H,A;存放结果RET4.2.2分支程序设计分支结构框图(a)单分支流程;(b)多分支流程例3x,y均为8位二进制数,设x存入R0,y存入R1,求解:ORG1000HCOMP:CJNER0,#00H,SUL1;R0中的数与

8、00比较不等转移MOVR1,#00H;相等,R1←0SJMPSUL2SUL1:JCNEG;两数不等,若(R0)<0,转向NEGMOVR1,#01H;(R0)>0,则R1←01HSJMPSUL2NEG:MOVR1,#0FFH;(R0)<0,则R1←0FFHSUL2:RET例4比较两个无符号数的大小。设外部RAM的存储单元ST1和ST2中存放两个不带符号的二进制数,找出其中的大数存入外部RAM中的ST3单元中。程序如下:ORG1000HST1EQU2000HST2EQU2100H

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

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

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