第4章MCS-51单片机汇编语言程序设计.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.1 汇编语言程序设计概述 计算机是按照给定程序,逐条执行指令,完成某项规定的任务,因而,前面所学的MCS-51单片机的指令系统的各种指令只有按工作要求有序地编排为一段完整的程序,才能起到一定的作用,从而完成某一特定任务。因此,要使用单片机,首先必须编写出计算机能执行的程序。 4.1.1 程序设计语言 计算机能执行的程序可以用很多种语言来编写,但从语言结构及其与计算机的关系来看,可分为三大类型。 (1)机器语言 前面已经介绍过,机器语言是一种由由二进制代码“0”和“1”表示指令和数据的最原始的程序设计语言。由于计算机只能识别二进制代码,故机器语言与计算机的关系最为直接,执行速度最快。但对于使用者来说,编程非常繁琐,而且难看懂,难记忆,易出错。 (2)汇编语言 汇编语言是用英文单词或英文单词缩写表示机器语言指令的操作码(助记符),用符号表示操作数或操作数的地址。汇编语言易读、易记,但用汇编语言编写的程序,CPU不能直接执行,必须将其翻译成机器语言的目标代码,这一翻译过程称为汇编。 简单的程序可以通过人工查指令系统代码对照表翻译,称为“手工汇编”,这种方法易出错,且麻烦,所以通常采用“机器汇编”。机器汇编是由专门的程序来进行的,这种程序称为汇编程序(不同指令系统汇编程序不同)。汇编程序可以把用汇编语言编写的源程序翻译成由机器语言表示的目的码程序(也称为目标程序)。 汇编语言非常适合于实时控制的需要。在MCS-51的实际应用中,绝大部分应用程序都是采用汇编语言编写的。 使用汇编语言编程,是单片机程序设计的基本功之一。 (3)高级语言 高级语言是一种面向过程而独立于计算机硬件结构的通用计算机语言,如BASIC、FORTRAN、PASCAL以及C语言等。这些语言是参照数学语言而设计的近似于日常会话的语言,使用者不必了解计算机内部结构,因而它比汇编语言更易学、易懂,而且通用性较强。 高级语言也不能被计算机直接识别和执行,也需要翻译为机器语言。这一翻译工作通常称为编译或解释,进行编译或解释的程序称为编译程序或解释程序。 用于翻译高级语言的程序要占用较多存储空间,而且执行时间长,且不易精确掌握,故在高速实时控制中一般是不适用的。 4.1.2 汇编语言程序的组成 汇编语言源程序是由汇编语句组成的,一般情况下,汇编语言语句可分为:指令性语句(即汇编指令)和指示性语句(即伪指令)。 (1)汇编指令 已在前一章进入了深入的学习。每一条汇编指令在汇编时都产生相应的机器语言的目标代码。 (2)伪指令 伪指令又称汇编控制指令,这些指令不属于指令系统,它是控制汇编(翻译)过程的一些命令。伪指令不产生机器代码。 利用伪指令告诉汇编程序如何进行汇编,同时它也为人们编程提供了方便。 4.1.3 伪指令 MCS-51单片机汇编语言中常用的伪指令如下: (1) ORG(origin)(汇编起始地址) 这是一条程序汇编起始地址定位伪指令,用来规定汇编语言程序进行汇编时,目的程序在程序存储器中存放的起始地址。 格式: ORG 16位地址 如, ORG 2000H START:MOV A,#00H ┋ 汇编结果:ORG 2000H下面的程序或数据存放在存储器2000H开始的单元中,标号START为符号地址,其值为2000H。 在一个源程序中,可多次使用ORG指令,来规定不同的程序段的起始地址。但是,地址必须由小到大排列,地址不能交叉、重叠。如不用ORG规定,则汇编得到的目标程序将从0000H开始。 (2)END (end of assembly)(结束汇编) 汇编语言程序结束伪指令,用在程序的末尾,表示程序己结束。汇编程序对END以后的指令不再汇编。在整个源程序中只能有一条END命令,且位于程序的最后。 (3)EQU(equate)(赋值) 赋值(也称等值)伪指令,它的作用是把操作数段中的地址或数据赋值给标号字段中的标号。 格式:标号(字符名称) EQU 数或汇编符号 例1,TEST EQU 2000H 表示标号TEST=2000H,在汇编时,凡是遇到标号TEST时,均以2000H来代替。 例2,若定义:AA EQU R1,则“MOV A,AA”与“MOV A,R1”等值。 (4)DB(define byte)(定义字节) 定义字节伪指令,格式:[标号:] DB 项或项表 功能:从指定单元开始定义(存储)若干个字节。 使用时注意:项与项之间用“,”分隔;字符型数据用

文档评论(0)

zyg_2930102 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档