. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
《IBM-PC汇编语言程序设计》支持区
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
双字相乘怎么写啊???
[待解决]
回复[
5
次 ] 点击[
628
次 ]
lijangwei
[帖 主]
[ 发表时间:2008-02-25 15:35 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:7
信誉值:9
注册日期:2007-11-01 20:06
如果不用EAX,EDX,怎么写出双字相乘?比如:
datax dw 7501h
dw 7502h
datay dw 1234h
dw 1234h
怎么写呢?
wdm
[第
1
楼]
[ 回复时间:2008-02-25 21:20 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:342
信誉值:0
注册日期:2007-12-06 10:21
如果在16位环境下自己完成这个功能,确实比较费劲。就考虑进位的控制和确定就够受的了。
干脆转化成一个多重循环,进行加法运算吧。
5*3
相当于5+5+5.当然你还得控制高字和低子之间倍率以及数据对应,还有就是自己要进行字与字间标记进位等过程吧。
我没有做过,也是看了楼主的问题,突发奇想。楼主指点。
lijangwei
[第
2
楼]
[ 回复时间:2008-02-28 15:51 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:7
信誉值:9
注册日期:2007-11-01 20:06
还是不明白啊,想了想,不明白,高人指点!
lwbfq
[第
3
楼]
[ 回复时间:2008-02-28 19:55 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:56
信誉值:0
注册日期:2008-01-19 13:58
CPU的指令规定了,只要是乘法指令,就必须要用到EAX,EDX,除非你不使用MUL指令。
就按楼上说的,把乘法转化为加法来进行计算。
younggay
[第
4
楼]
[ 回复时间:2008-02-28 20:55 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:273
信誉值:0
注册日期:2008-01-23 20:23
a*b就是b个a相加。
lijangwei
[第
5
楼]
[ 回复时间:2008-03-05 17:20 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:7
信誉值:9
注册日期:2007-11-01 20:06
可能是我自己理解错了,打扰了,各位!!!
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved