- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.2顺序程序设计
4.2 顺序程序设计
??? 顺序结构程序是一种最简单、最基本的程序 ( 也称为简单程序 ) ,它是一种无分支的直线形程序,按照程序编写的顺序依次执行。
【例 4-1 】 两个 8 位无符号数相加,和仍为 8 位。
??? 假设两个无符号数 X 1 , X 2 分别存放于内部 RAM60H 、 61H 单元中,求其和并将和送入 62H 单元。
??? 程序如下:
??? ORG ??? 0000H ??? CLR ??? C ??? MOV ??? R0 , # 60H ;设 R0 为数据指针 ??? MOV ??? A , @R0 ;取 X 1 ??? 1NC ??? R0 ??? ADDC ??? A , @R0 ; X 1 +X 2 ??? 1NC ??? R0 ??? MOV ??? @R0 , A ;保存结果 ??? END 【例 4-2 】两个无符号双字节数相加。设被加数存放在内部存储器 30H (高位字节)、 31H (低位字节)单元,加数存放在内部存储器 40H (高位字节)、 41H (低位字节)单元,和存入 30H (高位字节)、 31H (低位字节)单元。
程序如下:
??? ORG ??? 0000H ??? CLR ??? C ;将 C 清零 ??? MOV ??? R0 , #31H ;送被加数首址 ??? MOV ??? R1 , #41H ;送加数首址 ??? MOV ??? A , @R0 ;取被加数低字节 ??? ADD ??? A , @R1 ;两个低字节相加 ??? MOV ??? @R0 , A ;低字节和存人被加数低字节 ??? DEC ??? R0 ;修改指针,指向被加数高字节 ??? DEC ??? R1 ;修改指针,指向加数高字节 ??? MOV ??? A , @R0 ;取被加数高字节 ??? ADDC ??? A , @R1 ;高字节相加 ??? MOV ??? @R0 , A ;存结果? ??? END? 【例 4-3 】编写 16 位二进制数求补程序
??? 二进制数的求补可归结为“求反加 1 ”的过程,求反可用 CPL 指令实现;加 1 时应注意,加 1 只能加在低 8 位的最低位上。因为现在是 16 位数,有两个字节,因此要考虑进位问题,即低 8 位取反加 1 ,高 8 位取反后应加上低 8 位加 1 时可能产生的进位,还要注意这里的加 1 不能用 INC 指令,因为 INC 指令不影响 CY 标志。
ORG 0200H ? MOV A ,R0 ;低8位送A CPL A ;取反 ADD A ,#01H ;加l MOV R2 ,A ;存结果 MOV A ,R1 ;高8位送A CPL A ;取反 ADDC A ,#00H ;加进位 MOV R3 ,A ;存结果 END ? ? ?
【例4-4】编程将20H单元中的8位无符号二进制数转换成3位BCD码,并存放在22H(百位)和21H(10位,个位)两个单元中。
解 在MCS—51系列单片机中有除法指令,转化比较方便。因8位二进制数对应的十进制数为0~255,所以先将原数除以100,商就是百位数的BCD码;余数作为被除数再除以10,商为10位数的BCD码;最后的余数就是个位数的BCD码,将10位、个位的BCD码合并到一个字节中,将结果存人即可。
??? 程序如下:
ORG 1000H ? MOV A ,20H ;取数送A MOV B ,# 64H ;除数100送B中 DIV AB ;商(百位数BCD码)在A中,余数在B中 MOV 22H ,A ;百位数送22H MOV A , B ;余数送A做被除数 MOV B , #0AH ;除数10送B中 DIV AB ;十位数BCD码在A中,个位数在B中 SWAP A ;十位数BCD码移至高4位 ORL A , B ;并入个位数的BCD码 MOV 21H , A ;十位、个位BCD码存人21H
文档评论(0)