- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
循环程序.ppt
第三章 汇编语言与程序设计基础;汇编语言程序:
用汇编语言编写的、完成特定功能的指令序列。
汇编程序:
能将汇编语言源程序转换成机器语言目标程序的系统软件。;源程序使用机器汇编要考虑汇编程序的约定。;汇编的主要任务:;常用伪指令及其功能:
1. ORG—起始地址指令:指明程序和数据块起始地址。
指令地址 机器码 源程序
ORG 2000H
2000H 78 30 MAIN:MOV R0,#30H
2002H E6 MOV A,@R0
…(请手工汇编上面3句程序)
ORG 3000H
3000H 23 DB 23H,100,‘A’
3001H 100
3002H ‘A’ ; 4. EQU —等值。为标号或标识符赋值。 X1 EQU 2000H X2 EQU 0FH … MAIN: MOV DPTR,#X1;7. BIT —位定义。
例:BNAM BIT 30H;3-2 汇编语言程序设计步骤; 常用程序结构: 直线程序、分支程序、循环程序、子程序 ; ;例2:编制一段程序,要求在端口线P1.0,P1.1上分别产生周期为200us和400us的方波。设单片机的外接频率为12MHz。 ; ORG 0002H
MOV SP, #40H ;置堆栈指针
MOV TMOD, #22H ;T0及T1为工作方式2
MOV TL0, #9CH ;确定T0的时间常数
MOV TL1, #38H ;确定T1的时间常数
MOV TCON , #50H ;启动T0及T1,开始定时
MOV IE, #8AH ;允许T0,T1的中断
ORG 000BH ;T0的中断入口地址
IT0: MOV TL0, #9CH ;重置时间常数
CPL P1.0 ;P1.0取反
RETI ;中断返回
ORG 001BH ;T1的中断入口地址
IT1: MOV TL1, #38H ;重置时间常数
CPL P1.1 ;P1.1取反
RETI ;中断返回
END;3-4分支程序
由条件转移指令构成程序判断框部分,形成程序分支结构。
例题:设变量x以补码数的形式存放在片内RAM30H单元,函数y与x有如下关系式(此题关键在于识别X的模态); 程序代码:
ORG 1000H
MOV A,30H
JZ NEXT
ANL A,#80H
JZ ED
MOV A,#05H
ADD A,30H
MOV 30H,A
SJMP ED
NEXT: MOV 30H,#20H
ED: SJMP $;3-5 循环程序包含多次重复执行的程序段,循环结构使程序紧凑。;3-5-2 单重循环简单循环结构:循环体中不套循环。;循环控制方法:计数控制、特征标志控制。;二.特征控制??设定循环结束标志实现循环控制。CJNE法; 3-5-3 多重循环循环体中套循环结构。以双重循环使用较多。;;软件延时程序。用循环程序将指令重复多次执行,实现软件延时。; 3-6 子程序子程序:能完成某项特定功能的独立程序段,可被反复调用。;3-6-2 子程序的入口及出口参数按子程序与主程序之间传递参数的方式分类。;例:将R4R5R6中三个字节数据对半分解,变成6个字节, 存入显示缓冲区(DISMEM0~DISMEM5)。;例 子程序:比较两个数据串是否完全相等,若完全相等,A=0;否则A=FFH。;例:查表求出数据的ASCII码,再以字符形式输出。; 3-7 算术运算程序3-7-1 多字节加减运算程序;3-7-2 多字节无符号数乘除运算;相减计算多字节除法程序,步骤:1.对齐高位被除数试减除数。2.若够减商上1,不够减商上0且恢复余数。3.余数左移或除数右移对位。4.循环重复前3步,直至取够相应位数的商。;3-7-3 代码转换程序(一)十六进制数转换为ASCII码
文档评论(0)