多位十进制乘法汇编

多位十进制乘法汇编

ID:15074099

大小:38.50 KB

页数:4页

时间:2018-08-01

多位十进制乘法汇编_第1页
多位十进制乘法汇编_第2页
多位十进制乘法汇编_第3页
多位十进制乘法汇编_第4页
资源描述:

《多位十进制乘法汇编》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、****************************************************************************两个任意位数的十进制数相乘****************************************************************************.modelsmall;定义存储单元.stack10h;定义堆栈段.data;定义数据段p1db'Pleaseinputthefirstnumber:$'p2db'Pleaseinputthesecondnumber:$'p3d

2、b'hereistheresult:$'xdb20dup(?);定义乘数ydb20dup(?);定义被乘数zdb?resultdb40dup(?);定义结果countdw?idb?jdb?----------------------------------------------------------------------------inputmacroopr;输入乘数、被乘数的宏定义locala1locala2localovermovax,@datamovds,axleasi,opra1:;判断输入是否为0-9的整数,把输入的十进制数转换成二进制

3、数movah,1int21hcmpal,0dhjeovercmpal,'0';判断al中的ascci码,如果小于'0',则输入不在正确的范围内,退出jlovercmpal,'9';同上,判断al中的Ascci码,如果大于'9',退出jgoversubal,30h;ASCII码转换成二进制数movdi,siadddi,18da2:;先输入的数向后移movbx,ds:[di]movds:[di+1],bxdecdicmpdi,sijgea2movds:[si],al;保存进opr中的最低位jmpa1;跳转到a1over:callcrlf;调用回车换行子程序

4、endm---------------------------------------------------------------------------multiplemacroopr1,opr2,opr3leasi,opr3movcount,si;取opr3的地址leasi,opr1;取opr1的地址leadi,opr2;去opr2的地址movi,0movj,0a5:;有进位的数位上的计算pushsipushdimovbh,0movbl,iaddsi,bxmovbl,jadddi,bxmoval,ds:[si];取乘数的一个数位上的数movbl

5、,ds:[di]movah,0mulblaammovz,ah;把进位保存到z中movsi,countmovbh,0movbl,iaddsi,bxmovbl,jaddsi,bxmovbl,ds:[si];取result对应数位上的原有值movah,0addal,blaaaaddz,ah;进位相加movds:[si],al;保存结果a4:movax,0incsimovbl,ds:[si]moval,zaddal,blaaamovds:[si],al;结果保存到result中cmpah,0jen2;如果无进位,则跳到n2movz,ahjmpa4n2:popd

6、ipopsiincjcmpj,20jgen3jmpshorta5;j循环n3:movj,0incicmpi,20jgeover2jmpshorta5;i循环over2:endm----------------------------------------------------------------------------.code;定义代码段mainprocfarmovx,0movy,0movresult,0movax,@datamovds,axleadx,p1movah,9int21hcallcrlfinputx;输入乘数callcrlf;按回

7、车leadx,p2movah,9int21hcallcrlfinputy;输入被乘数callcrlf;按回车multiplex,y,result;两数相乘callcrlf;按回车leadx,p3movah,9int21hcalloutput;输出结果callcrlfretmainendp------------------------------------------------------------------------------outputprocnearleadi,result;取result的首地址赋给dimovsi,di;取resul

8、t的首地址赋给siaddsi,40da3:decsi;si地址减1cmpdi,sijen1;如

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。