划分OverFlow ASM

时间:2013-03-02 09:01:03

标签: assembly overflow calculator modulo divide

我正在为学校做一个计算器项目,所有的工作都很好, 但Divide和Mod(%)给我一个“Divide Overflow”错误,我该如何解决?

完整代码:http://pastebin.com/a9cuL0LJ

除以第158行

Mod是第166行

Num1Int和Num2Int都是0-255之间的数字

或者:

DivideDo:
push ax
mov ax , word ptr Num1Int
div Num2Int
mov ResultInt , al
pop ax
ret

ModDo:
push ax
mov ax , word ptr Num1Int
div Num2Int
mov ResultInt , ah
pop ax
ret

1 个答案:

答案 0 :(得分:1)

一个明显的问题是,虽然Num1Int是8位宽:

    Num1Int db ?

你把它看作是16位宽:

    mov ax , word ptr Num1Int