单片机原理与接口技术第4章 汇编语言程序设计.pptVIP

单片机原理与接口技术第4章 汇编语言程序设计.ppt

  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.3.3 循环程序设计 解 软件延时程序一般都是由DJNZ Rn ,rel 指令构成。执行一条DJNZ指令需2个机器周期。由此可知,软件延时程序的延时时间主要与机器周期和延时程序中的循环次数有关,在使用12MHz晶振时,一个机器周期为1μs,执行一条DJNZ指令需要2个机器周期,即2μs。 延时50ms需用双重循环,程序如下: DEL: MOV R7,#125 ;执行时需1个机器周期 DEL1: MOV R6,#200 ; DEL2: DJNZ R6,DEL2 ;200×2=400μs(内循环时间) DJNZ R7 DEL1 ;0.4ms×125=50ms(外循环时间) RET 4.3.3 循环程序设计 例4-13 编写无符号数排序程序。 假设在片内RAM中,起始地址为60H的10个单元中存放有10个无符号数,试进行升序排序。 解 数据排序常用方法是冒泡排序法。编程中选用R7作比较次数计数器,初始值为09H,位地址00H作为冒泡过程中是否有数据互换的标志位,若(00H)=0,表明无互换发生,已排序完毕。(00H)=1,表明有互换发生。 4.3.4 子程序设计 将能够完成一定功能、可以被其它程序调用的程序段称为子程序。调用子程序的程序称为主程序或调用程序。 调用子程序的过程,称为子程序调用。子程序执行完后返回主程序的过程称为子程序返回。 1.子程序的结构与设计注意事项 在子程序的开始位置有标号,该标号(即子程序的入口地址)可以作子程序的名字使用;中间是完成某种功能的程序段;在子程序末尾有子程序返回指令RET,其功能是当子程序执行完毕能自动返回到主程序中去。 4.3.4 子程序设计 在编写子程序时要注意以下几点。 1) 要给每个子程序赋一个名字,实际上是子程序入口地址的标号。 2) 明确入口条件、出口条件。所谓入口条件,即表明子程序需要哪些参数,放在哪个寄存器和哪个内存单元;出口条件则表明子程序处理的结果是如何存放的。 3) 注意保护现场和恢复现场。 4.3.4 子程序设计 2.子程序的调用与返回 主程序在调用子程序时要注意以下问题。 1) 在主程序中,要安排相应指令来满足子程序的入口条件,即提供子程序的入口数据。 2) 在主程序中,要安排相应的指令,处理子程序提供的出口数据。 3) 在主程序中,不希望被子程序更改内容的寄存器,也可以在调用前由主程序安排压栈指令来保护现场,然后子程序返回后再安排弹栈指令恢复现场。 4) 在主程序中,要正确地设置堆栈指针。 堆栈在子程序调用中是必须用到的区域。因为断点地址均是自动存入堆栈区的。 4.3.4 子程序设计 例4-14 用程序实现C=a2+b2。 设a 、b 均小于10。a存在内部RAM31H单元,b内部RAM内部RAM32H单元,把C存入内部RAM33H单元 解 因本题二次用到平方值,所以在程序中采用把求平方编为子程序的方法。 子程序名称:SQR。 功能:求X2(通过查平方表来获得)。 入口参数:某个数在A中。出口参数:某数的平方在A中。 主程序是通过两次调用子程序来得到a2和b2,并在主程序中完成相加。 第4章汇编语言程序设计 4.1 程序设计语言及设计步骤 4.2 伪指令 4.3 汇编语言程序设计 4.3.1 顺序程序设计 4.3.2 分支程序设计 4.3.3 循环程序设计 4.3.4 子程序设计 4.1 程序设计语言及设计步骤 1. 机器语言 机器语言就是用二进制(可缩写为十六进制)代码来表示指令和数据。也称为机器代码、指令代码。 2. 汇编语言 用助记符表示的指令就是计算机的汇编语言,汇编语言与机器语言一一对应。 3. 高级语言 高级语言是一种面向算法、过程和对象的程序设计语言,它采用更接近人们自然语言和习惯的数学表达式及直接命令的方法来描述算法、过程和对象 。 4.1.1程序设计语言概述 4.1.2 汇编语言程序设计步骤 (1)分析题意,明确要求 (2)确定算法。 (3)画程序流程图,用图解来描述和说明解题步骤。 (4)分配内存工作单元,确定程序与数据区存放地址。 (5)编写源程序。 (6)程序优化。 (7)上机调试、修改、最后确定源程序。 用汇编语言编写的程序称为汇编语言源程序。将汇编语言源程序翻译成用机器代码表示的目标程序,这个翻译过程称为“汇编”。能完成翻译工作的程序称为汇编程序。汇编语言源程序是由指令和伪指令构成。 指令能使CPU执行某种操作,能生成对应的机器代码;伪指令不能命令CPU执行某种操作,也没有对应的机器代码,它的作

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档