标题:[求助]关于双字节的乘法和除法
只看楼主
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
 问题点数:0 回复次数:5 
[求助]关于双字节的乘法和除法
已知X和Y为双字节带符号数据,怎样实现X*Y和X/Y?
本人正学汇编中,麻烦大家指导一下,不胜感激!!!!!!!

搜索更多相关主题的帖子: 除法 乘法 字节 符号 
2006-05-09 17:19
公子吕
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2006-5-4
得分:0 

X dw xxxxh
Y dw xxxxh

mov ax,X
imul Y ; X*Y;;;乘积结果在dx(高位),ax(低位)中.

mov ax,X
cwd ;将ax的符号扩展到dx.
idiv Y ; X/Y;;;商和余数分别放到ax,dx.

2006-05-10 12:55
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
得分:0 
楼上所说的指令IMUL和IDIV只能用于字类型的数据,而我所说的是双字类型的数据。

英者自知,雄者自胜
2006-05-10 22:28
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
得分:0 
哦,2楼说的对,我把双字节类型的数据搞混了,其实双字节类型的数据就是字类型的数据.....

英者自知,雄者自胜
2006-05-11 12:43
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
得分:0 
回复:(公子吕)X dw xxxxhY dw xxxxhmov ax,Ximul Y...

.386

X DD ?
Y DD ?

mov eax,X
imul Y ; X*Y;;;乘积结果在edx(高位),eax(低位)中.

mov eax,X
cdq ;将eax的符号扩展到edx.
idiv Y ; X/Y;;;商和余数分别放到eax,edx.


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-11 17:17
dafubj
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-7-28
得分:0 
回复 5楼 –★–
这里有一个范例,可以参考。看完自然明白:
DATAX    DW  0148H
DW  2316H
DATAY    DW  0237H
DW  4052H
要求按照双字将DATAX和DATAY相乘。
解答:

AA      DW  0
BB      DW  0
CC      DW  0
DD      DW  0
 ┇
MOV  AX, DATAX
MUL  DATAY
MOV  AA , AX
MOV  BB, DX
MOV  AX, DATAX
MUL  DATAY+2
ADD  BB, AX
ADC      CC, DX
MOV  AX, DATAX+2
MUL  DATAY
ADD  BB, AX
ADC      CC, DX
ADC      DD, 0
MOV     AX, DATAX+2
MUL  DATAY+2
ADD  CC, AX
ADC      DD, DX
2010-08-05 17:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-62877-1-1.html




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

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