我有一个div有点问题,我需要一些帮助解决这个问题,我在TASM中有一个应用程序,我必须在一系列数字中找到3的倍数,问题是当我做一个div程序时冻结,我不明白为什么。如果有人可以帮助我,我会留下代码,谢谢
代码在这里:http://pastebin.com/5tw50WJR
thnx可以获得任何帮助
答案 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