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

高职高专《单片机原理及应用》 3-4 3-5 汇编语言程序概述及设计.ppt

高职高专《单片机原理及应用》 3-4 3-5 汇编语言程序概述及设计.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CLEAR: CLR A  MOV DPTR, #8000H ; 工作单元首址送指针 MOV R2, 50 ; 置循环次数 CLEAR1: MOVX @DPTR, A INC DPTR ; 修改指针 DJNZ R2, CLEAR1; 控制循环 RET 多重循环 例 7 10 秒延时程序。 延时程序与 MCS - 51 执行指令的时间有关, 如果使用 6 MHz晶振, 一个机器周期为 2 μs, 计算出一条指令以至一个循环所需要的执行时间, 给出相应的循环次数, 便能达到延时的目的。10 秒延时程序如下:  DELAY: MOV R5, #100 DEL0: MOV R6, #200 DEL1: MOV R7, #248 DEL2: DJNZ R7, DEL2 DJNZ R6, DEL1 DJNZ R5, DEL0 RET 上例程序中采用了多重循环程序, 即在一个循环体中又包含了其它的循环程序, 这种方式是实现延时程序的常用方法。 使用多重循环时, 必须注意:  (1) 循环嵌套, 必须层次分明, 不允许产生内外层循环交叉。 (2) 外循环可以一层层向内循环进入, 结束时由里往外一层层退出。  (3) 内循环可以直接转入外循环, 实现一个循环由多个条件控制的循环结构方式。 例 8 在外部 RAM中, BLOCK开始的单元中有一无符号数据块, 其个数为 LEN个字节。试将这些无符号数按递减次序重新排列, 并存入原存储区。 ORG 1000H  START: MOV DPTR, #BLOCK; 置地址指针 MOV P2, DPH ; P2作地址指针高字节 MOV R7, #LEN ; 置外循环计数初值 DEC R7 ; 比较与交换 n-1次 LOOP0: CLR F0 ; 交换标志清 0 MOV R0, DPL;  MOV R1, DPL ; 置相邻两数地址指针低字节 INC R1  MOV R6, R7 ; 置内循环计数器初值 LOOP1: MOVX A, @R0 ; 取数 MOV B, A ; 暂存 MOVX A, @R1 ; 取下一个数 CJNE A, B, NEXT; 相邻两数比较, 不等转 SJMP NOCHA ; 相等不交换 NEXT: JC NOCHA; Cy =1, 则前者大于后者, 不必交换 SETB F0 ; 否则, 置交换标志 MOVX @R0, A ; XCH A, B ; 两数交换, 大者在前, 小者在后 MOVX @R1, A ; NOCHA: INC R0 INC R1; 修改指针 DJNZ R6, LOOP1 ; 内循环未完, 则继续 JNB F0, EXIT ; 若从未交换, 则结束 DJNZ R7, LOOP0; 外循环未完, 则继续 EXIT: RET 4 子程序和参数传递 (1)、 子程序的概念 通常把这些基本操作功能编制为程序段作为独立的子程序, 以供不同程序或同一程序反复调用。在程序中需要执行这种操作的地方放置一条调用指令, 当程序执行到调用指令, 就转到子程序中完成规定的操作, 并返回到原来的程序继

您可能关注的文档

文档评论(0)

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

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

版权声明书
用户编号:6100124015000001

1亿VIP精品文档

相关文档