单片机课程第4章 80C51汇编程序设计.pptVIP

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.1 汇编语言程序设计过程 1.分析问题,确定算法或解题思路 2.画流程图 3.编写程序 4 .调试和修改 注意:程序语言的选择 流程图符号 强化模块观念 4.2 基本程序结构 (无分支、无循环) (单分支、双分支、多分支) (2种:先执行,后判断;先判断,后执行) 4.3 子程序及其调用 例 无符号双字节乘法。 解: 设被乘数和乘数分别放在R2、R3和R4、R5中,R0指向积的高字节。 子程序入口: (R2、R3)=被乘数; (R4、R5)=乘数; (R0)=预存放积的低字节的单元地址; 子程序出口: (R0)=积的高字节的单元地址; 主程序: ORG 0000H ljmp MAIN ORG 0040H MAIN: MOV R2,#12H MOV R3,#1AH MOV R4,#12H MOV R5,#2BH MOV R0,#33H MOV @R0,#00h MOV R7,#04 DEC R0 DEC R0 DEC R0 DEC R0 例:编写多字节无符号数的减法子程序。设2个多字节无符号数的低字节地址分别存于R0和R1中,低字节在高地址单元。相减后的差存放在减数原来的位置。 子程序入口:(R0)=被减数低字节地址; (R1)=减数的低字节地址; (R7)=字节数 子程序出口: (R1)=差的高字节地址; 程序:ORG 0000H ljmp MAIN ORG 0040H MAIN: MOV R0,#37H MOV R1,#3FH ACALL NSUB SJMP $ NSUB: MOV R7,#3 CLR C NSUB1: MOV A,@R0 SUBB A,@R1 MOV @R1,A DEC R0 DEC R1 DJNZ R7,NSUB1 INC R1 RET END 例:利用子程序实现c=a2+b2。设a,b,c分别存于内部RAM的30H,31H,32H三个单元中。 子程序入口:(A)=预平方数; 子程序出口:(A)=平方值; ORG 0000H LJMP MAIN ORG 0040H MAIN: MOV 30H,#4 MOV 31H,#5 MOV A,30H ACALL SQR MOV R1,A MOV A,31H ACALL SQR ADD A,R1 MOV 32H,A SJMP $ SQR: MOV DPTR,#TAB MOVC A,@A+DPTR RET TAB: DB 0,1,4,9,16,25,36,49,64,81 END 例1:将1位十六进制数转换成相应的ASCII码。设十六进制数存放在R0中,转换后的ASCII码存放于R2中。 ORG 0000H ljmp MAIN ORG 0040H MAIN:MOV R0,#0BH

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档