实验三无符双字节乘法程序设计.doc

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二 无符号双字节乘法程序设计 实验目的和要求 本次实验的目的是用MCS-51汇编语言实现一无符号双字节乘法运算子程序编程实验。实验前要认真阅读本次实验的内容,参考给出的无符号双字节乘法运算的算法、流程图及参考程序,可考虑用另一种方法设计程序。然后上机调试,达到进一步掌握MCS-51汇编语言程序设计的基本方法。 预备知识 由于MCS-51指令中只有8位数乘法指令MUL,用它来实现双字节数相乘时,要做一些算法处理才可以进行。 算法:两个双字节无符号数被分别存放在R2R3和R6R7中。可把被乘数和乘数分解为: (R2)(R3)=(R2)?+(R3), (R6)(R7)=(R6)?+(R7) 则这两个数的乘积可表示为: (R2)(R3)(R6)(R7)=[ (R2)?+(R3)]?[ (R6)?+(R7)] =(R2)(R6)?216+(R2)(R7)?28+(R3)(R6)?28+(R3)(R7) 根据上面的算法公式,然后画出流程图,就能设计两个双字节无符号数进行乘法运算的程序了。 程序流程图 图1 无符号双字节乘法程序流程图 四、实验步骤 在R2R3和R6R7中分别输入无符号整数,以0970H为起始地址连续或单步运行本实验程序后检查R4 R5 R6 R7中内容,就是两数的乘积。 入口:(R2R3)=被乘数;(R6R7)=乘数;出口:(R4R5R6R7)=乘积,R4为积的最高位。 ORG 0970H QKUL: MOV A,R3 MOV B,R7 MUL AB ;R3*R7 XCH A,R7 ;R7=(R3*R7)低字节 MOV R5,B ;R5=(R3*R7)高字节 MOV B,R2 MUL AB ;R2*R7 ADD A,R5 MOV R4,A CLR A ADDC A,B MOV R5,A ;R5=(R2*R7)高字节 MOV A,R6 MOV B,R3 MUL AB ;R3*R6 ADD A,R4 XCH A,R6 XCH A,B ADDC A,R5 MOV R5,A MOV PSW.5,C ;存CY MOV A,R2 MUL AB ;R2*R6 ADD A,R5 MOV R5,A CLR A MOV ACC.0,C MOV C,PSW.5 ;加上次加法的进位 ADDC A,B MOV R4,A SJMP $ END 五、实验报告要求 写出修改后的正确程序,并做注释。 画出流程图。 回答思考题。

文档评论(0)

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

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

1亿VIP精品文档

相关文档