MCS单片机汇编语音程序设计.ppt

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

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ORG 0000H MOV R1,#20H ;R1指示地址 MOV R2,#00H ;存积的高八位寄存器R2清0 S10:CLR C ;清进位位C MOV A, @R1 ;取一字节送A MOV B,#0AH ;10送B MUL AB ;字节乘10 ADD A,R2 ;上次积高八位加本次积低八位 MOV @R1,A ;送原存储单元 CLR A ADDC A,B ;将低八位的进位加入高八位 MOV R2,B ;积的高八位送R2 INC R1 ;指向下一字节 DJNZ R7,S10 ;未乘完去SH10,否则向下执行 MOV @R1,B ;存最高字节积的高位 SJMP $ ORG 0000H CLR C ;清进位位C MOV R1,#20H ;R1指示地址 MOV R2,#00H ;存积的高八位寄存器R2清0 S10:MOV A, @R1 ;取一字节送A MOV B,#0AH ;10送B PUSH PSW MUL AB ;字节乘10 POP PSW ADDC A,R2 ;上次积高八位加本次积低八位 MOV @R1,A ;送原存储单元 MOV R2,B ;积的高八位送R2 INC R1 ;指向下一字节 DJNZ R7,S10 ;未乘完去SH10,否则向下执行 MOV @R1,B ;存最高字节积的高位 SJMP $ 例3-12 编写多字节BCD码减法程序 ORG 0000H SUBCD: MOV R3,#00H CLR 07H CLR C SUBCD1: MOV A,#9AH SUBB A,@R0 ADD A,@R1 DA A MOV @R0,A INC R0 INC R1 INC R3 CPL C DJNZ R2,SUBCD1 JNC SUBCD2 SETB 07H SUBCD2: SJMP $ 设被减数低字节 地址用R1表示, 减数地址用R0 表示,字节数用 R2表示.差的地 址仍用R0表示, 差的字节数放在 R3.用07H位作为 结果的符号标志, ”0”为正,”1”为负。 例3-13 编写将十进制数转换成二进制数程序 设十进制数9345以非压缩BCD码形式依次存放在内部RAM的 40H-43H单元中,将其转换为二进制数并存于R2R3中。 分析:一个n位的十进制数Dn-1Dn-2…D0可表示为 (((Dn-1×10)+Dn-2) ×10+Dn-3) ×10+…+D1) ×10+D0 例如:9345=((9×10+3) ×10+4) ×10+5 R2 0 9 H 0A H 5A H 0 3 H 5D H 0 5D H 0 0A H 3 A2 H 0 3 A2 H 4 H × R3 + R2 R3 × + + A6 H 03 0A H 6 7C H 1E 24 7C H 5 H R2 R3 × + + ORG 0000H DCB: MOV R0,#40H MOV R1,#03H MOV R2,#0 MOV A,@R0 MOV R3,A LOOP: MOV A,R3 MOV B,#10 MUL AB MOV R3,A MOV A,B XCH A,R2 MOV B,#10 MUL AB ADD A,R2 MOV R2,A INC R0 M

文档评论(0)

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

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

1亿VIP精品文档

相关文档