MCS-51汇编语言程序设计

MCS-51汇编语言程序设计

ID:928362

大小:2.59 MB

页数:11页

时间:2017-09-25

MCS-51汇编语言程序设计_第1页
MCS-51汇编语言程序设计_第2页
MCS-51汇编语言程序设计_第3页
MCS-51汇编语言程序设计_第4页
MCS-51汇编语言程序设计_第5页
资源描述:

《MCS-51汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第四章MCS-51汇编语言程序设计99第四章MCS-51汇编语言程序设计重点及难点:单片机汇编语言程序设计的基本概念、伪指令、单片机汇编语言程序的三种基本结构形式、常用汇编语言程序设计。教学基本要求:1、掌握汇编语言程序设计的基本概念;2、掌握伪指令的格式、功能和使用方法;3、掌握顺序结构、分支结构和循环结构程序设计的步骤和方法;4、掌握常用汇编语言程序设计步骤和方法。教学内容§4.1汇编语言程序设计概述一、汇编语言的特点(1)助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化

2、的程序。(2)使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。(3)汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。(4)汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用;但是掌握了一种计算机系统的汇编语言后,学习其他的汇编语言就不太困难了。二、汇编语言的语句格式[<标号>]:<操作码>[<操作数>];[<注释>]三、汇编语言程序设计的步骤与特点(1)建立数学模型(2)确定算法(

3、3)制定程序流程图(4)确定数据结构(5)写出源程序(6)上机调试程序§4.2伪指令伪指令是程序员发给汇编程序的命令,也称为汇编命令或汇编程序控制指令。MCS-51常见汇编语言程序中常用的伪指令:第四章MCS-51汇编语言程序设计991.ORG(ORiGin)汇编起始地址命令[<标号:>]ORG<地址>2.END(ENDofassembly)汇编终止命令[<标号:>]END[<表达式>]3.EQU(EQUate)赋值命令<字符名称>EQU<赋值项>4.DB(DefineByte)定义字节命令[<标号:>]DB<8位数表>5.DW(Define

4、Word)定义数据字命令[<标号:>]DW<16位数表>6.DS(DefineStonage)定义存储区命令[<标号:>]DW<16位数表>7.BIT位定义命令<字符名称>BIT<位地址>8.DATA数据地址赋值命令<字符名称>DATA<表达式>§4.3单片机汇编语言程序的基本结构形式一、顺序程序[例4-1]三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、5414和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H位中。MOVR0,#52H;被加数的低

5、字节地址MOVR1,#55H;加数的低字节地址MOVA,@R0ADDA,@R1;低字节相加MOV@R0,A;存低字节相加结果DECR0DECR1MOVA,@R0ADDCA,@R1;中间字节带进位相加MOV@R0,A;存中间字节相加结果DECR0DECR1MOVA,@R0ADDCA,@R1;高字节带进位相加MOV@R0,A;存高字节相加结果CLRA第四章MCS-51汇编语言程序设计99ADDCA,#00H;存放进位的单元地址MOV@R0,A;进位送00H位保存二、分支程序1.单分支程序[例4-2]变量X存放在VAR单元内,函数值Y存放在FUNC

6、单元中,试按下式的要求给Y赋值。本题的程序流程见图4-1(a)。参考程序:ORG1000HVARDATA30HFUNCDATA31HMOVA,VAR;A←XJZDONE;若X=0,则转DONEJNBACC.7,POSI;若X>0,则转POSIMOVA,#0FFH;若X<0,则Y=-1SJMPDONEPOSI:MOVA,#01H;若X>0,则Y=1DONE:MOVEFUNC,A;存函数值SJMP$END第四章MCS-51汇编语言程序设计99图4-1例4-2的分支流程图这个程序的特征是先比较判断,然后按比较结果赋值,这实际是三分支而归一的流程图,

7、因此,至少要用两个转移指令。初学者很容易犯的一个错误是:漏掉了其中的SJMPDONE语句,因为流程图中没有明显的转移痕迹。这个程序也可以按图4-1(b)的流程图来编写,其特征是先赋值,后比较判断,然后修改赋值并结束。参考程序:ORG1000HVARDATA30HFUNCDATA31HMOVA,VAR;A←XJZDONE;若X=0,则转DONEMOVR0,#0FFH;先设X<0,R0=FFHJNBACC.7,NEG;若X<0,则转NEGMOVR0,#01H;若X>0,R0=1NEG:MOVA,#01H;若X>0,则Y=1DONE:MOVFUNC

8、,A;存函数值SJMP$END2.多分支程序图4-2多分支程序转移三、循环程序循环程序一般由4部分组成:(1)置循环初值,即确立循环开始时的状态。(2)循环体(工作

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

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

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