cfer 发表于 2011-11-15 23:43:55

计算n的三次方的程序疑惑

在书上200页,有一个计算n的三次方的子程序是这样的:
cube:movax,   bx
       mul   bx
       mul   bx
      ret
可是我总感觉这样有些不妥。因为比如n是122h的话,122h*122h=14884h,此时n的平方牵涉到了dx.那么接下来的mul bx只是用ax中的值和bx相乘,而且乘出来的值又会对dx有影响。这样不就求出的不是n的三次方吗?
实际调试也确实是这样。如果n=122h,那么这样做的结果是dx=52h,ax=2588h,即结果是522588h,而实际应是1742588h。
是这样子吗,还是我哪里考虑错了?

h18755 发表于 2011-11-16 04:08:41

偶来回答!
第一:两数相乘高位存dx 低位ax
第二: 常数的平方,比如3*3*3=9*3
第三:它们相乘的时候是把dx附带进去相乘的

z310394543 发表于 2011-11-16 10:48:29

sx徐 发表于 2011-11-16 11:09:58

要用到带进位指令imul

cfer 发表于 2011-11-16 19:13:44

本帖最后由 cfer 于 2011-11-16 19:14 编辑

感谢各位的回答{:7_181:}

lan_xin2578 发表于 2011-11-17 12:22:13

我也一直迷糊中:handshake
页: [1]
查看完整版本: 计算n的三次方的程序疑惑