- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编制程序的步骤 1.任务分析(自上而下,模块化) 2.确定算法和工作步骤; 3.程序总体设计和流程图绘制 4. 分配内存,确定程序与数据区存放地址; 5. 编写源程序; 6. 调试、修改,优化,最终确定程序。 4.3.3 循环程序 ADD1:MOV R3, #0 MOV R4, #0 MOV R0,#50H LOOP?:?MOV A, R4 ADD A, @R0 MOV R4, A INC R0 CLR A ADDC A, R3 MOV R3, A DJNZ R2, LOOP 例4-10:晶振频率为12MHz,编写50ms的延时程序 分析:1机器周期=1μs,50 000个周期,超出了8位数的范围,所以只能循环嵌套。200×250 DEL: MOV R7, #200 ; 1μs DEL1: MOV R6, #125 ; 1μs DEL2: DJNZ R6, DEL2 ; 2μs DJNZ R7, DEL1 ; 2μs DEL: MOV R7, #200 ; 1μs DEL1: MOV R6, #123 ; 1μs NOP ; 1μs DEL2: DJNZ R6, DEL2 ; 2μs DJNZ R7, DEL1 ; 2μs * * * 第4章 汇编语言程序设计 4.1 汇编程序的基本形式 4.2 顺序结构程序设计 4.3 分支结构程序设计 4.4 循环结构程序设计 4.5 子程序的设计 4.1 汇编语言程序的基本形式 例4-1 已知16位二进制负数存在R1, R0中,求其补码,结果放在R3, R2中 MOV A, R0 CPL A ADD A, #1 MOV R2, A MOV A, R1 CPL A ADDC A, #80H MOV R3, A 4.2 顺序结构程序设计 例4-4 设有一个巡回检测报警装置,需对16路输入进行控制,每路有一个双字节的最大允许值,控制时,根据测量的路数,找出每路的最大允许值。如果输入值大于最大允许值就报警。编写程序根据路数查找最大允许值。 思路:1. 设路数存放在R2中,结果存入R3R4 2. 编写一个表格,在表格中依次放入各路的最大允许值,共16个数。注意,表格一般放到程序最后 3. 用查表指令查表,若用DPTR,直接把表头地址赋给DPTR;若用PC,需要计算偏移值,注意双字节 4.2 顺序结构程序设计 1. 用DPTR LTB1: MOV A, R2 ADD A, R2 MOV R3, A MOV DPTR, #TAB1 MOVC A, @A+DPTR XCH A, R3 INC A MOVC A, @A+DPTR MOV R4, A RET TAB1:DW 1520, 3721, 4265, 7580, 3483, 3257, 883, 9943 DW 1000, 40511, 6758, 8931, 4468, 5871, 13284, 27808 4.2 顺序结构程序设计 2. 用PC LTB2: MOV A, R2 ADD A, R2 MOV R3, A ADD A, #6 MOVC A, @A+PC XCH A, R3 ;1 ADD A, #3 ;2 MOVC A, @A+PC ;1 MOV R4, A ;1 RET ;1 TAB2:DW 1520, 3721, 4265, 7580, 3483
文档评论(0)