- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例:内部RAM40H和41H单元分别存放两个8位二进制无符号加数,求两数相加之和,和存放在内部RAM42H单元中。假设两数之和仍是8位二进制数。 解: 例:内部RAM40H和41H单元分别存放两个8位二进制无符号加数,求两数相加之和,和存放在内部RAM42H单元中。假设两数之和仍是8位二进制数。(注意比较两种编程方法的优劣性) 解(1)MOV A, 40H; (A)=(40H) ADD A, 41H; (A)=(40H)+(41H) MOV 42H, A; (42H)= (40H)+(41H) (2)MOV R0, #40H; 设置数据指针,(R0)=40H MOV A, @R0; 取第一个加数,(A)=(40H) INC R0; 修改数据指针,(R0)=41H ADD A, @R0;两数相加(A)=(40H)+(41H) INC R0; 修改数据指针,(R0)=42H MOV @R0, A;存两数和(42H)=(40H)+(41H) 例:两个三字节二进制无符号数相加,被加数放在内部RAM 20H~22H单元(低字节存放在低地址单元,高字节存放在高地址单元,即低位在前,高位在后),加数放在2AH~2CH单元,和放在20H~22H单元,最高位如有进位,则放在23H单元中。 解:数据类型(二、十进制数,有、无符号数);数据结构(升、降序排列) 被加数(N1) 加数(N2) 和(N3) 20H单元 低字节(8位) 2AH单元 低字节(8位) 20H单元 低字节(8位) 21H单元 中字节(8位) 2BH单元 中字节(8位) 21H单元 中字节(8位) 22H单元 高字节(8位) 2CH单元 高字节(8位) 22H单元 高字节(8位) 23H单元 进位位 被加数(N1) 高字节(8位) 中字节(8位) 低字节(8位) 加数(N2) 高字节(8位) 中字节(8位) 低字节(8位) 被加数 N1 高字节(8位) 中字节(8位) 低字节(8位) 加数 N2 高字节(8位) 中字节(8位) 低字节(8位) +)进位位(CY) 进位位(CY) ) 和 N3 进位 高字节(8位) 中字节(8位) 低字节(8位) MOV A, 20H;(A)=被加数N1低字节 ADD A, 2AH;(A)=被加数N1低字节+加数N2低字节 低字节和的进位在CY中 MOV 20H,A; (20H)=和N3低字节 MOV A, 21H;(A)=被加数N1中字节 ADDC A, 2BH;(A)=被加数N1中字节+加数N2中字节+ 低字节和的进位,中字节和的进位在CY中 MOV 21H,A; (21H)=和N3中字节 MOV A, 22H;(A)=被加数N1高字节 ADDC A, 2CH; MOV 22H,A; (22H)=和N3高字节 MOV A, #00H; ADDC A, #00H;高字节和的进位位处理 MOV 23H,A; 保存处理后的高字节和的进位 思考题: 1)如果N1、N2、N3的数据结构为高字节存放在低地址单元,低字节存放在高地址单元,应如何修改程序? 2)上述程序,如果利用数据指针,采用寄存器间接寻址的方式,应如何修改程序? 思考题:1) 被加数(N1) 高字节(8位) 中字节(8位) 低字节(8位) 加数(N2) 高字节(8位) 中字节(8位) 低字节(8位) 解:MOV A, 22H;(A)=被加数N1低字节 ADD A, 2CH;(A)=被加数N1低字节+加数N2低字节 低字节和的进位在CY中 MOV 22H,A; (22H)=和N3低字节 MOV A, 21H;(A)=被加数N1中字节 被加数(N1) 加数(N2) 和(N3) 20H单元 高字节(8位) 2AH单元 高字节(8位) 20H单元 高字节(8位) 21H单元 中字节(8位) 2BH单元 中字节(8位) 21H单元 中字节(8位) 22H单元 低字节(8位) 2CH单元 低字节(8位
文档评论(0)