| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2033 人关注过本帖
标题:关于 乘法运算的问题
只看楼主 加入收藏
脑壳疼
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2018-4-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
关于 乘法运算的问题

图片附件: 游客没有浏览图片的权限,请 登录注册

如何 不用 MULWF 和 MULLW 做乘法运算
是用 and 和 or 嘛?
谢谢各位大佬

搜索更多相关主题的帖子: 乘法 运算 and 
2018-04-27 23:18
Valenciax
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:11
帖 子:340
专家分:2482
注 册:2016-5-15
收藏
得分:10 
加法吧,用意是将X加Y次,若X = 9 , Y = 4
X * Y = 9 * 4 = 9 + 9 + 9 + 9
假设A,B,C是暂存器,虚拟码大概是:


 读 x 入 A
 读 x to B
 读 y to C
RE:
 C 减 1
 若结果 = 0 则跳 OK
 加 A,B
 跳 RE
OK:


     
2018-04-28 06:56
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:10 
@Valenciax解答的是一种最容易理解和实现的方法,但通常使用左移相加效率高些,以8位乘法运算为例,被乘数叠加乘数次数最多会循环255次,如果使用左移相加则最多循环8次即可,实例代码如下:
    xor ax,ax   //计算结果
    mov bx,9    //被乘数
    mov cx,4    //乘数
lp2:shr cx,1    //乘数右移一位,最低位进入cf标志位
    jnc lp1     //最低位为0则跳转
    add ax,bx   //最低位不为0则加上被乘数
lp1:shl bx,1    //被乘数左移一位
    cmp cx,0    //乘数是否为0
    jnz lp2     //不为0继续累加
    int 3       //退出循环后ax即为计算结果,这种情况下循环2次即得到结果

能编个毛线衣吗?
2018-04-28 15:59
快速回复:关于 乘法运算的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042952 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved