第四章(汇编)语言程序设计(DOC).doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
word完美格式 精心整理 学习帮手 第四章 汇编语言程序设计 本章的汇编语言程序设计的主要内容有:汇编语言程序设计概述、汇编语言程序的结构形式、汇编语言的伪指令。 (一个单片机应用系统和其它计算机系统一样,在完成一项具体工作的时候,它要按照一定的次序,去执行操作,这些操作实际上就是由设计人员,以单片机能够接受的指令编制的程序,那么无论计算机也好,单片机也好,实际上编制程序的过程,就是用计算机来反映设计者的编程思想,那么这一章中,我们将向大家介绍怎样使用单片机指令系统来编制一些应用程序。在介绍之前,我们还是来学习汇编语言的一些基础知识) 4.1 汇编语言程序设计概述 1、计算机的汇编语言 以助记符表示的指令,每一条指令就是汇编语言的一条语句。 (汇编语言程序设计实际上就是使用汇编指令来编写计算机程序。汇编语言的语句有严格的格式要求) 2、汇编语言的语句格式 MCS-51汇编语言的语句格式表示如下: [标号]: 操作码 [操作数]; [注释] 标号:指令的符号地址,有了标号,程序中的其它语句才能访问该语句。 ①标号是由1~8个ASCII字符组成,但头一个字符必须是字母,其余字符可以是字母、数字或其它特定字符。 ②不能使用汇编语言已经定义了的符号作为标号,如指令助记符、伪指令记忆符以及寄存器的符号名称等。 (同一个标号在程序中只能定义一次,不能重复定义;一条语句可以有标号,也可以没有标号,所以是否有标号,取决于程序中是否需要访问该语句。) 操作码:规定语句执行的操作内容,操作码是以指令助记符表示的,是汇编指令格式中唯一不能空缺的部分。 操作数:给指令的操作提供数据或地址。 注释:是对语句或程序段的解释说明。 (在单片机中,这四个部分怎么加以区分呢?使用分界符) 分界符(分隔符):用于把语句格式中的各部分隔开,以便于编译程序区分不同的指令段。 冒号(:)用于标号之后 空格( )用于操作码和操作数之间 逗号(,)用于操作数之间,分割两个以上的操作数 分号(;)用于注释之前。 (注释部分汇编语言不对它们进行编译的。而是将标号,操作码,操作数部分加以翻译成机器码。看一个例子) (表面是延时子程序的第一条语句,故加上标号,便于访问。上面的语句如何编译的呢?) ORG 3000H 3000H E8H DELY: MOV A, R0 ; 这是延时子程序 (在这条指令前,加一个伪指令,定义程序首地址,我们把这一段语句定义为从3000H开始,经过编译以后,那么这一条语句的标号部分,DELY这时候就转化为实际的地址值3000H,指令操作码和操作数部分编译后为E8H,这就是汇编语言与机器代码之间的关系。这个转化工作是由编译程序来完成的。) 4.2 单片机汇编语言程序的结构形式 (一般有三种形式) 顺序结构;分支结构;循环结构 (下面我们来依次介绍一下这些结构) 1、顺序结构程序设计 顺序程序是最简单的程序结构,在顺序程序中既无分支、循环,也不调用子程序,程序执行时一条一条地按顺序执行指令。 (下面来看一个例子,该部分程序完成一个3字节无符号数的加法) 例4.1:三字节无符号数相加,被加数在内部RAM的50H、51H和52H单元中,加数在内部RAM的53H、54H和55H单元中,其中被加数单元和加数单元的高位地址存放的为最低位字节;要求把相加之和存放在50H、51H和52H单元中。进位位存放在位寻址区的00H位中。 (我们来看编制的程序) ADDU: MOV R0, #52H ;被加数的低字节地址 MOV R1, #55H ; 加数的低字节地址 MOV A, @R0 ;取被加数的最低位数据 ADD A, @R1 ;与加数的最低字节相加(第一次相加,不考虑进位位) MOV @R0, A ;存低字节相加结果 DEC R0 ;地址减1 DEC R1 ; MOV A, @R0 ADDC A, @R1 ;中间字节带进位相加 MOV @R0, A ;存中间字节相加结果 DEC R0 ;地址减1 DEC R1 MOV A, @R0 ADDC A, @R1 ;高位字节带进位相加 MOV @R0, A ;存高字节相加结果 CLR A ;进位送00H位保存。(对A清零) ADDC A, #00H ;(把进位位移到A的最低位) MOV 20H, A ;进位位送入位地址00H(相当于把A的最低位放到20H的最低位) RET 2、分支结构程序设计 程序分支是通过

文档评论(0)

文档分享 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档