第五章 汇编语言程序设计c.ppt

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

* SORT: MOV A,#(N-1) MOV R4,A ;外循环次数 LOOP1: MOV A,R4 MOV R3,A ;内循环次数 MOV R0,#TAB ;设数据指针 LOOP2: MOV A,@R0 ;取相邻两数 MOV B,A INC R0 MOV A,@R0 ; A和B比较 CJNE A,B,L1 ;比较 L1: JNC UNEX ;A≥B,不交换 DEC R0 ;否则交换数据 XCH A,@R0 INC R0 MOV @R0,A UNEX: DJNZ R3,LOOP2 ;内循环结束? DJNZ R4,LOOP1 ;外循环结束? RET (R3)-1=0 ? B ←(R0) A ← ( R0 + 1 ) 循环结束 外循环次数→R4 (R4)-1=0 ? 内循环次数→R3 表首TAB→R0 开始 A ≥ B? (R0)←→(R0+1) R0 ← R0+1 Y N * 软件延时程序:用循环程序使指令重复多次执行,实现软件延时。 例:试计算延时程序的执行时间。 源程序 指令周期(M) 指令执行次数 DELAY:MOV R6,#64H 1 I1: MOV R7,#0FFH 1 I2: DJNZ R7,I2 2 DJNZ R6,I1 2 RET 2 延时时间计算(设振荡频率为12MHz): (1×1+1×100+2×100×255+2×100+2×1)×M = 51.3ms 1 100 100×255 100 1 * 编写循环程序应注意的问题: 1)进入循环体前应注意安排循环初始化,合理设置初始化变 量; 2)循环体只能执行有限次,无限执行的为“死循环”; 3)不能破坏或修改循环体,避免从循环体外直接跳转到循环体 内; 4)内外循环间不应相互交叉; 5)循环体内可直接转到循环体外或外层循环中,实现一个循环 由多个条件控制结束的结构。 * 5-5 查表程序 例5-19 一个十六进制数存放在HEX单元的低四位,将其转换成 ASCII码并送回HEX单元。 程序: ORG 0100H HEX EQU 30H HEXASC:MOV A ,HEX ANL A, ADD A,#3 ;变址调整 MOVC A,@A+PC MOV HEX,A ;2字节 RET ;1字节 ASCTAB:DB 30H,3lH,32H,33H DB 34H,35H,36H,37H DB 38H,39H,41H,42H DB 43H,44H,45H,46H END * 5-6 子程序设计 子程序:能完成某项特定功能的独立程序段,可被 反复调用。 一、子程序结构 1)子程序入口用标号作为子程序名。 2)调用子程序之前设置好堆栈。 3)用返回指令RET结束子程序,并保证堆栈栈顶为调用程序 的返回地址。 4)子程序嵌套时须考虑堆栈容量。 5)提供足够的调用信息: 如:子程序名、子程序功能、入口参数和出口参数、子 程序占用的硬件资源、子程序中调用的其他子程序名等。 二、参数传递 入口参数:调用子程序之前,需要传给子程序的参数。 出口参数:子程序返回给调用程序的结果参数。 1)子程序无须传递参数 例5-23 * 例5-24 双字节负数求补子程序CPLD。 入口参数:(R7R6)=16位数。 出口参数:(R7R6)=求补后的16位数。 CPLD: MOV A,R6 CPL A

文档评论(0)

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

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

1亿VIP精品文档

相关文档