请大家帮忙解决下我的一个疑惑 谢谢
王爽老师 《 汇编语言》第二版10.10 参数和结果传递的问题
;说明:计算n的3次方
;参数:(bx)=n
;结果:(dx:ax)=n^3
cube:mov ax,bx
mul bx
mul bx ;进行此步乘法,感觉有些问题
ret
书上说两个十六位数进行乘法,高位默认存在dx,低位默认在ax中,那么在进行第二个mul bx时,个人有些疑惑,
第一次做乘法的时候,结果就在dx和ax中,第二次乘的时候,用的只是第一次所得结果中ax的值,而dx中的数没用,这样想,好像就不是计算bx的三次方了!
是呀,没溢出就是dx=0,就没用dx中的数据
这个求3次方是根据上面的程序来的,他只是算1到8的3次方,所以dx都为0,不需要dx的数据
如果dx不为0,又是另外的算法了 其实很简单,王爽老师故意忽略了,因为进位,溢出的问题还没涉及到 根据"以后遇到的问题,以后再说“,当讲到如何解决溢出时,程序就不会是这样了 仁意 发表于 2012-9-14 21:45 static/image/common/back.gif
根据"以后遇到的问题,以后再说“,当讲到如何解决溢出时,程序就不会是这样了
不是溢出的问题,我的意思是,dx中的数据没用,那计算dx的3次方,这样算不对呀,因为默认用的只是ax的数据!! 山外青山楼外楼,高手外面还有高手!
页:
[1]