第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章MCS51汇编语言程序设计整理ppt

4.1 汇编语言概述 4.1.1 程序设计语言的分类及特点 能够完成一定功能的指令序列称为程序,用来设计计算机程序的语言称为程序设计语言,按照语言的结构及功能程序设计语言可分为:机器语言、汇编语言和高级语言。 1.机器语言 是计算机所能识别的唯一语言,由二进制代码0和1构成指令和数据。 其具有效率高、响应速度快的特点,但由于机器语言编写的程序依赖于计算机的结构,可移植性差,繁琐且难于记忆、识别和调试,通常编程时,不采用机器语言。 2.汇编语言 是一种符号语言,指令由助记符表示。 与机器语言相比,汇编语言具有指令容易记忆、理解、识别和可读性好的优点,但实质上由于汇编语言也是面向机器的语言,是机器语言程序的符号表示,所以用户必须熟悉机器的硬件结构和指令系统,掌握计算机的工作过程才能熟练编程。 另外,汇编语言所编写的源程序与经过汇编所产生的机器代码程序之间有明显的一一对应关系,所以汇编语言编写的程序同样也存在通用性差,程序不能移植的缺点。 3.高级语言 高级语言是接近于人的自然语言形式的计算机编程语言的总称,例如C语言、BASIC语言等都是高级语言。 和汇编语言相比,高级语言指令简单易学,用户容易掌握,且高级语言程序不依赖于具体的硬件结构和指令系统,程序可移植性好,但是高级语言编写的源程序必须经过编译或解释程序翻译成目标程序,机器才能执行,而生成的目标程序需占用较多的存储单元,执行时间较长,运行效率较低。 4.1.2 单片机汇编语言源程序的编辑和汇编 1.汇编语言的指令类型 汇编语言源程序由两种类型的汇编语言语句(即指令)构成。语句按性质不同分为两类:指令性语句(机器指令)和指示性语句(伪指令)。 (1)机器指令 指令系统中的全部指令,每条指令都有对应的机器代码,是机器真正能够执行的指令。 (2) 伪指令 为汇编程序在汇编过程中提供控制或指示信息,并不直接产生机器代码,属于机器不能执行的指令类型。 2.汇编 计算机不能直接识别和执行源程序。因此源程序必须经过汇编程序汇编产生机器码目标程序文件,程序才能执行。这种将汇编语言源程序转换成机器语言程序的过程称为汇编。 汇编的主要功能为: (1)确定程序中每条汇编语言指令的指令机器码。 (2)确定每条指令在程序存储器中的存放地址。 (3)提供语法、编辑等方面的错误信息,但不能提供程序的逻辑错误。 (4)产生目标执行文件(*.OBJ/*.HEX)和列表文件(*.LST)。 4.2.1 顺序程序设计 顺序程序是程序设计中最基本的结构,又称为简单程序。特点为顺序执行每一条指令,直到最后。其执行过程如图4-3所示。 在实际应用时,通常遇到根据某变量取值不同从而转向不同分支的题目,这时经常采用分支表法。常用的分支表主要有三种形式:转移指令表、分支地址表和地址偏移量表。 实质上都是利用散转指令JMP @A+DPTR来实现的。的目标地址。 【例7】根据R2的内容,转向相应的分支程序。即: R2=0,转向PROG0 R2=1,转向PROG1 … R2=n,转向PROGn 可采用方法: (1)使用转移指令表。 (2)使用分支地址表。 (3)使用地址偏移量表。 (1)使用转移指令表。 所谓转移指令表即由转移指令组成的分支表,如图所示。 设转移指令表的标号为JMPTAB,分支数为5,解题思路分析如图所示。 MOV DPTR,#JMPTAB;将JMPTAB→DPTR MOV A,R2 MOV B,#03 MUL AB ;R2×3→BA PUSH A ;暂存乘积的低位字节A MOV A,B ADD A,DPH ;将乘积的高位字节B+DPH→DPH MOV DPH,A ; POP A ;将暂存的A内容恢复 JMP @A+DPTR ;散转 若转移指令表由2字节指令AJMP构成,M取值应为2,且各分支程序的入口地址PROG0、PROG1…必须与 转移指令表处于同一个2KB的存储地址空间之内,而LJMP指令表则没有这个限制。 使用AJMP转移指令表的程序如下: MOV DPTR,#JMPTAB ;将JMPTAB→DPTR CLR C MOV A,R2 RLC A ;R2×2→A JNC NOADD ;判断是否有进位 INC DP

文档评论(0)

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

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

1亿VIP精品文档

相关文档