汇编程序创新设计.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文档。上传文档
查看更多
  程序设计有时是一件很复杂的工作,但往往有些程序结构是很典型的。采用结构化编程时,有规律性极强、简单清晰、容易读写、可靠性高等特点。   根据结构化程序设计的观点,功能复杂的程序结构由基本算法结构组成,基本结构有三种:顺序结构、循环结构和分支结构。   说明:   (1) 采用AJMP即把PC指向子程序的起始地址;   (2) ??R7+R7=R7×2,与AJMP的机器码匹配,因n<128,不会进位;   (3) 如用LJMP,则需R7×3,程序需要作相应修改。 子程序的编写和调用应该做到:   (1) 标准化。注释中应该注明程序名、功能、入口、出口和所占用的寄存器和存储单元。   (2) 现场保护。 如果在调用前,程序已经使用了某些存储单元或寄存器,在调用时,这些寄存器和存储单元又有其它用途,就应该先把这些单元和寄存器中的内容压入堆栈进行保护。调用完后,再从堆栈中弹出,加以恢复。如果有较多的寄存器需要保护,应使主程序和子程序使用不同的寄存器组。 例1:设有一个巡回检测报警装置,需对16路输入进行控制,每路有一个最大允许值(为双字节)。控制时需根据测量的通道,找出每路的最大值,高、低8位分放于R3、R4。    查表程序的关键是表格的定义和如何实现查表。 (2) 汇编语言源程序。 ORG 0000H MOV DPTR, #TABLE ;表首地址→DPTR(数据指针) MOV A,#05 ;05→A MOVC A,@A+DPTR ;查表指令,25→A,A=19H SJMP $ ;程序暂停 TABLE: DB 0,1,4,9,16,25,36,49,64,81;定义0~9平方表 END 例1:从内部RAM 22H单元开始存有一个无符号数数据块,长度n存于21H中。求出数据块中的最小数,存于20H中。 ORG 0030H MOV R0,#22H ;数据块起始地址 MOV R1,21H ;数据个数n MOV 20H,#0FFH ;初始化最小数为0FFH LOOP:MOV A,@R0 ;取新数 INC R0 ;为取下一个新数做准备 CJNE A,20H,LOOP1 ;与原最小数比较 LOOP1:JNC NEXT ;大于等于,原最小数保留 MOV 20H,A ;小于,改变最小数 NEXT:DJNZ R1,LOOP ;判断循环 END 4.6 查表程序设计   查表程序是一种常用程序, 它广泛使用于LED显示器控制、 打印机打印以及数据补偿、 计算、 转换等功能程序中, 具有程序简单、 执行速度快等优点。      查表, 就是根据变量x与y的关系——y=f(x), 在表格中查找y。 MCS-51系列单片机专门提供了两条查表指令: MOVC A,@A?+?DPTR MOVC A,@A?+?PC ORG 0000H START:MOV A,R2 ;待查通道数送A ADD A,R2 ;待查通道数乘2,与数据表中的地址相配 MOV R3,A ;保存通道数 MOV DPTR, #ADDR8 ;表格首址送DPTR MOVC ?A,@A?+?DPTR ;查出对应通道的最大允许值高位字节 INC R3 ;为指向下一个地址单元做准备 XCH A,R3 MOVC A,@A?+?DPTR ;查出对应通道的最大允许值低位字节 MOV R4,A ;存入R4 ADDR8:DW 1520H,3721H,4264H,7850H ;最大允许值表 DW 3484H,3265H,8830H,9947H END 例2 在程序中定义一个0~9的平方表,利用查表指令找出累加器A=05H的平方值。 (1) 题意分析 所谓表格是指在程序中定义的一串有序的常数,如平方表、字型码表、键码表等。因为程序一般都是固化在程序存储器(通常是只读存储器ROM类型)中,因此可以说表格是预先定义在程序的数据区中,然后和程序一起固化在ROM中的一串常数。   循环结构的程序, 不论是先处理后判断, 还是先判断后处理, 其关键是控制循环的次数。 根据需解决问题的实际情况,

文档评论(0)

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

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

1亿VIP精品文档

相关文档