计算机及应用_第四章_80C51单片机汇编语言程序设计.ppt

计算机及应用_第四章_80C51单片机汇编语言程序设计.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 80C51单片机汇编语言程序设计 主要内容: 4.1 单片机程序设计语言概述 4.2 汇编语言程序的基本结构形式 4.3 80C51 单片机汇编语言程序设计举例 4.4 单片机汇编语言源程序的编辑和汇编 4.5 80C51 单片机汇编语言伪指令 4.1 单片机程序设计语言概述 4.1.1 机器语言和汇编语言 机器语言:直接用二进制代码指令表达的计算机语言。计算机可以直接识别,不需要进行任何翻译。每台机器的指令,其格式和代码所代表的含义都是硬性规定的 。机器语言是其它各种程序设计语言的基础,但难记、难用、已出错。 汇编语言:用助记符和专门的语言规则表示指令的功能和特征的面向机器的程序设计语言。汇编语言是对机器语言的改进,比机器语言高级。汇编语言的最大优点是助记符与机器指令一一对应。用汇编语言编写的程序占用存储空间小,运行速度快,程序效率高。 缺点:比高级语言难记忆和使用,程序设计的技巧性较高,编程难度较大。要求使用者必须精通单片机的硬件系统和指令系统。缺乏通用性,程序不易移植。 4.1.2 单片机使用的高级语言 对于8051单片机,现有4种语言支持,即汇编、PL/M、C和BASIC。 C语言应用广泛 移植性好; 开发效率高。 keil c51 高级语言的不足: 生成的目标代码较长; 程序运行速度较慢。 4.1.3 80C51 单片机汇编语言的语句格式 80C51汇编语言的语句格式如下: [<标号>] : <操作码> [<操作数>]; [<注释>] 1. 标号 是语句地址的标志符号,标号的几点规定: 1~8个ASCII字符组成,第一个字符必须是字母。 不能使用本汇编语言已经定义的符号作为标号。 标号后面必须跟以冒号“:”。 同一标号在一个程序中只能定义一次。 标号可有可无。 2. 操作码 用于规定语句执行的操作内容,用指令助记符表示。不能空缺。 4.1.3 80C51 单片机汇编语言的语句格式 3. 操作数 操作数用于为指令操作提供数据。可能有0~3个操作数,各操作数之间以逗号分隔。 4. 注释 不属于语句的功能部分,只是对语句的解释说明,以“;”开头。 5. 分界符(分隔符) 用于把语句中的各部分隔开,以便于区分。分界符包括空格、冒号、分号或逗号等符号。 4.2 汇编语言程序的基本结构形式 四种基本结构形式:顺序程序结构、分支程序结构、循环程序结构、子程序。 4.2.1 顺序程序结构 顺序结构程序是最简单的程序结构。程序既无分支、循环,也不调用子程序,程序执行时一条接一条地按顺序执行指令。 4.2.1 顺序程序结构 例1 3字节无符号数的加法运算。其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、54H和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的20H位中。 MOV R0, #52H ;被加数的低字节地址 MOV R1, #55H ;加数的低字节地址 MOV A, @R0 ADD A, @R1 ;低字节相加 MOV @R0, A ;存低字节相加结果 DEC R0 DEC R1 MOV A, @R0 ADDC A, @R1 ;中间字节带进位相加 MOV @R0, A ;存中间字节相加结果 DEC R0 DEC R1 MOV A, @R0 ADDC A, @R1 ;高字节带进位相加 MOV @R0, A ;存高字节相加结果 MOV 20H, C ;存放进位的单元地址 4.2.2 分支程序结构 分支结构也称为选择结构。要分支,就要用条件转移指令,就要有地址标号。分支结构又可分为单分支结构和多分支结构。 1. 单分支程序结构 单分支程序结构即二中选一,通过条件判断实现,条件成立一支,条件不成立一支。 例2 假定在外部RAM中有ST1、ST2和ST3三个连续单元,其中ST1和ST2单元中存放着两个无符号二进制数,试找出其中的大数并存入ST3单元中。 4.2.2 分支程序结构 1. 单分支程序结构 BIGER: CLR C ;进位位清0 MOV DPTR,#ST1 ;设置数据指针 MOVX A,@DPTR ;取第1个数 MOV R2, A ;第1个数存于R2 INC DPTR ;数据指针加1 MOVX A, @DPTR ;取第2个数 SUBB A, R2 ;两数比较 JNC BIG1 ;若第2个数大,则转向BIG1 XCH A, R2 ;若第1个数大,则整字节交换 BIG0: INC DPTR MOVX @DPTR, A ;存大

文档评论(0)

经管专家 + 关注
实名认证
内容提供者

各类文档大赢家

版权声明书
用户编号:6055234005000000

1亿VIP精品文档

相关文档