网站大量收购独家精品文档,联系QQ:2885784924

[小学教育]D__幻灯片定稿_第4章MCS-51汇编语言程序设计.ppt

[小学教育]D__幻灯片定稿_第4章MCS-51汇编语言程序设计.ppt

  1. 1、本文档共87页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[小学教育]D__幻灯片定稿_第4章MCS-51汇编语言程序设计

4.1 汇编语言概述 4.1.1 程序设计语言的分类及特点 能够完成一定功能的指令序列称为程序,用来设计计算机程序的语言称为程序设计语言,按照语言的结构及功能程序设计语言可分为:机器语言、汇编语言和高级语言。 1.机器语言 是计算机所能识别的唯一语言,由二进制代码0和1构成指令和数据。其具有效率高、响应速度快的特点,但由于机器语言编写的程序依赖于计算机的结构,可移植性差,繁琐且难于记忆、识别和调试,通常编程时,不采用机器语言。 2.汇编语言 是一种符号语言,指令由助记符表示。与机器语言相比,汇编语言具有指令容易记忆、理解、识别和可读性好的优点,但实质上由于汇编语言也是面向机器的语言,是机器语言程序的符号表示,所以用户必须熟悉机器的硬件结构和指令系统,掌握计算机的工作过程才能熟练编程。汇编语言程序通常用于实时控制领域,其所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件一般运行效率较高。 另外,汇编语言所编写的源程序与经过汇编所产生的机器代码程序之间有明显的一一对应关系,所以汇编语言编写的程序同样也存在通用性差,程序不能移植的缺点。 3.高级语言 高级语言是接近于人的自然语言形式的计算机编程语言的总称,例如C语言、BASIC语言等都是高级语言。和汇编语言相比,高级语言指令简单易学,用户容易掌握,且高级语言程序不依赖于具体的硬件结构和指令系统,程序可移植性好,但是高级语言编写的源程序必须经过编译或解释程序翻译成目标程序,机器才能执行,而生成的目标程序需占用较多的存储单元,执行时间较长,运行效率较低。 由于目前有些高级语言不具有直接处理接口和中断技术的功能,因此高级语言一般很少应用于实时控制,但随着语言的发展,这种情况将会有所改变。 4.1.2 单片机汇编语言源程序的编辑和汇编 1.汇编语言的指令类型 用汇编语言编写的、具有特定功能的指令序列,称为汇编语言源程序。源程序由两种类型的汇编语言语句(即指令)构成。语句是汇编语言的基本组成单位,按性质不同分为两类:指令性语句(机器指令)和指示性语句(伪指令)。 (1)机器指令 即指令系统中的全部指令,每条指令都有对应的机器代码,是机器真正能够执行的指令。 (2) 伪指令 为汇编程序在汇编过程中提供控制或指示信息,并不直接产生机器代码,属于机器不能执行的指令类型。 2.汇编 计算机不能直接识别和执行源程序。因此源程序必须经过汇编程序汇编产生机器码目标程序文件,程序才能执行。这种将汇编语言源程序转换成机器语言程序的过程称为汇编。对于初学者来说,应注意汇编语言源程序和汇编程序两个术语的区别,它们的功能示例如图4-1所示。 图4-1 汇编过程 纵上,汇编的主要功能为: (1)确定程序中每条汇编语言指令的指令机器码。 (2)确定每条指令在程序存储器中的存放地址。 (3)提供语法、编辑等方面的错误信息,但不能提供程序的逻辑错误。 (4)产生目标执行文件(*.OBJ/*.HEX)和列表文件(*.LST)。 4.1.3 MCS-51汇编语言的伪指令 4.2.1 顺序程序设计 顺序程序是程序设计中最基本的结构,又称为简单程序。特点为顺序执行每一条指令,直到最后。其执行过程如图4-3所示。 【例4-1】编写一程序,将累加器A中的两位压缩BCD转换成ASCII码存入1000H、1001H片外存储单元中。开始R0 ←AA←取A的低4位A←A+30H存入1000H单元A←取A的高4位A←R0A←A+30H存入1001H单元结束 分析:由ASCII码表可知,0~9的的ASCII码为30H~39H,即BCD码与ASCII码值的差值为30H。因此只要将两位BCD码分别取出与30H相加即可获得相应的ASCII码值,其算法流程图如图4-4所示。 【例4-2】已知如图4-5所示,双字节4位压缩BCD码数 X 存于片内RAM30H、31H单元,Y存于32H、33H单元,编程求 Z=X+Y,并将结果Z存入片内RAM单元34H、35H、36H中 ADDSUM:MOV A,30H ADD A,32H ;低位字节相加 DA A ;BCD码修正 MOV 34H,A ;低位字节存入34H中 MOV A,31H ADDC A,33H ;高位字节与低位进位相加 DA A MOV 35H,A ;高位字节之和存入35H中 MOV A,#0 ADDC A,#0 DA A MOV 36H,A ;高位字节的进位存入36H中 END。 4.2.2 分支程序设

文档评论(0)

ipbohn97 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档