- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
东南大学无线电工程系 第五章《MCS-51汇编语言程序设计》 4.1 汇编语言程序设计概述 汇编语言是面向机器硬件的语言,要求程序设计者 对MCS-51单片机具有很好的“软、硬结合”的功底。 MCS-51单片机的编程语言可以是汇编语言也可以是高级语言(如C语言),高级语言编程快捷,但程序长,占用存储空间大,执行慢;汇编语言产生的目标程序简短,占用存储空间小,执行快,能充分发挥计算机的硬件功能。无论是高级语言还是汇编语言,源程序都要转换成目标程序(机器语言)单片机才能执行。? 1.伪指令 (1)起始指令 ORG nn 功能:定义程序或数据块的起始地址。指示此语句后面的程序或数据块以nn为起始地址,连续存放在程序存储器中。 指令地址 机器码 源程序 ORG 2000H 2000H 78 30 MAIN: MOV R0,#30H 2002H E6 MOV A,@R0 … (3)字定义 标号:DW (字常数或表达式) 作用: 指示在程序存储器中以标号为起始地址 的单元里存放的数为字数据(即16位的二进制数),例如: GH :DW 1234H,5678H,08 (5)等值指令 标号 EQU(数值表达式) 表示EQU两边的量等值,用于为标号或标识符赋值。例如: X1 EQU 2000H X2 EQU 0FH … MAIN: MOV DPTR,#X1 ; DPTR=2000H ADD A,#X2 ; A=A+0FH (6)位定义 标号 BIT [位地址] 作用: 同EQU指令,不过定义的是位操作地址。 例如 AIC BIT P1.1 2、汇编程序基本格式 (1)汇编语言的语句格式 [标号]:操作码 [操作数];[注释] (2)汇编程序的一般格式 ORG XXXXH 汇编语句1 …… 汇编语句N END 第四章 MCS-51汇编语言程序设计 本章介绍以下内容 汇编语言程序设计概述 汇编语言伪指令 源程序的编辑和汇编 汇编语言程序基本结构形式 程序设计举例 汇编语言程序基本结构形式 按结构化程序设计思想,任何复杂程序都可由顺序结构、分支结构、循环结构等构成 顺序结构 不同的操作顺序执行,没有分支、循环、子程序调用。 多字节无符号数相加 整个系统流程就是顺序结构 顺序程序设计 顺序结构程序是一种最简单、最基本的程序(也称为简单程序),它是一种无分支的直线形程序,按照程序编写的顺序依次执行。 【例】 两个8位无符号数相加,和仍为8位。 假设两个无符号数X1, X2分别存放于内部RAM60H、61H单元中,求其和并将和送入62H单元。 程序如下: 由于MCS-51指令系统中只有单字节加法指令,因此对多字节相加时运算,必须从低位字节开始分字节进行。 最低字节可以使用ADD指令 其它字节相加时要把低字节的进位考虑进去.因此应使用ADDC指令。 顺序程序设计 【例】两个无符号双字节数相加。设被加数存放在内部存储器30H(高位字节)、31H(低位字节)单元,加数存放在内部存储器40H(高位字节)、41H(低位字节)单元,和存入30H(高位字节)、31H(低位字节)单元。 顺序程序设计 没有专门循环指令 通过条件判断控制循环 区分 先执行后判断 先判断后执行 循环程序设计 循环程序一般由4部分组成。 (1)置循环初值。 (2)循环体。 (3)循环修改。 (4)循环控制。 图 (a)结构是“先执行后判断”,适用于循环次数已知的情况。 图 (b)结构是“先判断后执行”,适用于循环次数未知的情况。 循环程序设计 分支程序 程序分支是通过条件转移指令实现的,即根据条件对程序的执行进行判断,满足条件则进行程序转移,不满足条件程序就顺序执行。 在MCS-51指令系统中,通过条件到断实现单分支程序转移的指令有JZ、JNZ、CJNE和DJNZ等。 此外还有以位状态作为条件进行程序分支的指令,如JC、JNC、JB、JNB和JBC等。 使用这些指令,可以完成为0、为1、为正、为负以及相等、
文档评论(0)