DSFEF 发表于 2022-3-17 12:22:44

关于10.10中两个mul的问题

原题目是计算N的3次方,
参数(bx)=n
结果(dx:ax)=n^3
代码如下:
cube:mov ax,bx
mul bx;(第1次)
mul bx;(第2次)
分割线----------------------------------------------------------
我想问的是第一个mul把高位存储在dx,低位储存在ax;
然后我进行第二次mul,只进行了ax*bx,假如n足够大,并没有把dx*bx算进去,还是说此题目没有考虑太广

学会了 发表于 2022-3-17 14:15:14

:kiss::victory::D

凡得友 发表于 2022-3-17 22:04:57

个人感觉,应该是没有考虑太广。
在debug中跟踪了一下:
mov ax,ffff
mov bx,fff0
mul bx
mul bx
第一次相乘,结果为ffef0010,即dx为ffef,ax为0010
第二次相乘,低16位(ax)*bx即0010*fff0=fff00,(ax)=ff00,进位为f
                  高16位(dx)*bx即ffef*fff0=ffdf0110,然后ffdf0110+刚才的进位f=ffdf011f
                  所以最后结果为ffdf011fff00

凡得友 发表于 2022-3-17 22:06:03

学会了 发表于 2022-3-17 14:15
**** 作者被禁止或删除 内容自动屏蔽 ****

看看
页: [1]
查看完整版本: 关于10.10中两个mul的问题