- 1、本文档共96页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理及其应用第四(修订)简介
第4章 MCS-51汇编程序设计 4.1 汇编语言基本概念 4.2 汇编语言程序设计 4.1 汇编语言基本概念 4.1.1 程序设计语言 4.1.2 汇编语言的语句结构 4.1.3 伪指令 4.1.1 程序设计语言 程序设计语言的结构及其功能可以分为三种: 1.机器语言:机器语言是用二进制代码0和1表示指令和数据的最原始的程序设计语言。 机器语言编程困难,一般不再用其编程。 2.汇编语言:在汇编语言中,指令用助记符表示,地址、操作数可用标号、符号地址及字符等形式来描述。 比机器语言编程方便,但要熟悉机器硬件结构、指令系统才能用好它。 汇编语言与机器语言一样是面向机器的,无通用性。 3.高级语言:高级语言是接近于人的自然语言,面向过程而独立于机器的通用语言。 近年来单片机也流行采用高级语言编程。 如C51 4.1.2 汇编语言的语句结构 1.汇编语言的指令类型 MCS-51单片机汇编语言,包含两类不同性质的指令。 (1)基本指令:即指令系统中的指令。它们都是机器能够执行的指令,每一条指令都有对应的机器代码。 (2)伪指令:汇编时用于控制汇编的指令。它们都不是机器的指令,无机器码产生。 2.汇编语言的语句格式 汇编语言源程序是由汇编语句(即指令) 组成的。汇编语言一般由四部分组成。 其典型的汇编语句格式如下: 标号: 操作码 操作数 ;注释 START: MOV A,30H ;A←(30H) START: MOV A, #0 ; 赋初值 (4-1) (p.69) MOV R1, #0A0H ;计数器赋初值 MOV R2, LOOP: ADD A, R2 ;累加 DJNZ R1, LOOP HERE: SJMP HERE 标号:即符号地址,需要时加上。标号后加冒号;标号由字母开头(1-8字符),标号不能与指令助记符、预定义符号相同。 操作数:数值操作数,根据需要可用16进制 (后缀H)、10进制、二进制 (后缀B) 表示。16进制数以A~F开头时,前面要加’0’。 $符号的使用:程序最后一句可用 SJMP $ 代替。 注释:以分号开头,根据需要对于指令的作用加以解释。 4.1.3 伪指令(p50) 用汇编语言编写的程序必须经汇编(翻译)成机 器代码,单片机才可运行它。为了控制汇编程序如何 完成源程序的汇编过程并产生目标程序,需要在源程 序中加入汇编控制命令,即伪指令。 1.ORG :汇编起始地址命令 用来说明ORG指令以下程序段在存储器中存放的起始地址。 例如 ORG 1000H START: MOV A,#20H MOV B,#30H ┇ 一个程序中可多次使用ORG指令,地址要由小到大 排列。 2.EQU :赋值命令 给标号赋予一个确定的数值。其它语句可以引用这 个标号 TTY EQU 1080H 3.DB :定义数据字节命令 把数据以字节的形式存放在连续存储单元中。 ORG 1500H HERE: DB 56H,0A7H,35,‘A’ (1500h 56H A7H 23H 41H) 4.DW :定义数据字命令 按字的形式把数据存放在连续存储单元中。 ORG 1600H ABC: DW 1234H, 4567H (1600h 12H 34H 45H 67H) 5.DS :定义存储区命令 从指定的地址单元开始,保留一定数量存储单元。 ORG 1000H BASE: DS 50H 6.BIT:位定义命令 赋字符名为某个位地址值。 EA BIT 0AFH 7.END:汇编结束命令 告知汇编程序源程序结束 4.2 汇编语言程序设计 4.2.1 汇编语言程序设计步骤 4.2.2 汇编语言程序的汇编 4.2.3 顺序程序 4.2.4 分支程序 4.2.5 循环程序 4.2.6 子程序 4.2.7 查找程序 4.2.8 码制转换程序 4.2.9 程序举例 4.2.1 汇编语言程序设计步骤 1.分析问题 完成什么任务,解决什么问题;已知的数据,运算精度和速度; 2.确定算法 用何种方法解决问题;多个算法的比较;怎样组织数据; 3.设计程序流程图 把算法和解决问题的步骤具体化;通过流程图掌握程序的总体结构; 4.分配内存单元和I/O端口地址 片内RAM划分:工作寄存器组;堆栈区;其它暂存区和缓冲区等;片外RAM; 确定各I/O端口的地址 5.编写汇编语言源程序 按流程图编写
您可能关注的文档
- 华法林临床合理使用存在的诸多问题及解决办法讲解.ppt
- 华成新产品研发流程优化与研发项目管理(学员V)讲解.ppt
- 华支睾吸虫(肝吸虫)讲解.ppt
- 华海药业,海翔药业,九州药业项目环境影响讲解.doc
- 华普体检培训讲解.ppt
- 华理(参考)文献翻译讲解.doc
- 华师大九级历史下册第二次世界大战全面爆发(共张)讲解.ppt
- 华星TDLTE培训基本原理讲解.pptx
- 华普体检护士礼仪培训讲解.ppt
- 华星TDLTE培训CSFB基础和优化讲解.pptx
- 人教版数学六年级上册 第一单元 第5课时 分数乘小数.pptx
- 人教版数学六年级上册 第四单元 第3课时 比的应用.pptx
- 人教版数学六年级上册 第五单元 第5课时 圆的面积-2.pptx
- 人教版数学六年级上册 第一单元 第7课时 解决问题-1.pptx
- 人教版数学六年级下册 第二单元 第4课时 利率.pptx
- 人教版数学六年级上册 第一单元 第8课时 解决问题-2.pptx
- 人教版数学六年级下册 第五单元 第2课时 鸽巢问题的一般形式.pptx
- 人教版数学六年级下册 第四单元 整理和复习.pptx
- 人教版数学六年级上册 第一单元 第3课时 分数乘分数-1.pptx
- 人教版数学六年级下册 第六单元复习第2课时 可能性.pptx
文档评论(0)