2012-09-26 78 views
1

的模當我這樣做,例如,1%3,我希望得到的結果是2TASM:負數

當我執行下列指令TASM我收到了意想不到的結果:

mov ax, -1 
xor bh, bh 
mov bl, 3 
idiv bl ; ah = FF (I expected 02), al = 00 

回答

2

This web page指出:

餘數的符號總是一樣的 被除數的符號。

Wikipedia有一些關於帶有簽名餘數的陷阱的信息。

可能的解決方法可能是使用div而不是idiv,和/或手動跟蹤標誌。

+0

它確實使用,事實上,你說關於其餘 – blaze

+0

與div的符號,並簽署股息我在調試器中得到意想不到的結果:S,所以絕對值使它:) – blaze