TASM中div的问题

时间:2013-04-27 21:19:23

标签: html assembly x86 dos tasm

我有一个div有点问题,我需要一些帮助解决这个问题,我在TASM中有一个应用程序,我必须在一系列数字中找到3的倍数,问题是当我做一个div程序时冻结,我不明白为什么。如果有人可以帮助我,我会留下代码,谢谢

代码在这里:http://pastebin.com/5tw50WJR

thnx可以获得任何帮助

2 个答案:

答案 0 :(得分:0)

div bl正在划分ax,但您只需加载al。据推测,ah中有div的剩余价值,因此ax溢出。尝试使用movzx ax, cont加载{{1}}。

另外,学会将调试器与指令集引用结合使用。

答案 1 :(得分:0)

当被除数为8位时,商将存储在AL中。因此,您需要确保商符合8位,否则程序将崩溃。

您可以通过在分割前清除AH寄存器来实现此目的,例如:使用以下方法之一。

CBW   ; only if AL is unsigned (00h..7Fh)

; or..

MOV AH,0

; or..

XOR AH,AH