2011-11-16 36 views
1

我想在組裝[Irvine-Intel x86處理器]中分兩個數字。 這裏是我的代碼:負數的MASM部門

mov eax, 4 
mov edx, 0 
mov ebx, 2 
div ebx 

我得到爲師的正確答案,但是當我的值更改爲負數,它不給我正確的答案。

mov eax, -4 
mov edx, 0 
mov ebx, 2 
div ebx 

據我所知,「div」是無符號除法。那麼如果我想用負數做分裂呢?

回答

0

您應該使用IDIV。 IDIV指令是一個分裂操作。 IDIV用於有符號數字,DIV用於無符號數字。

mov eax, -4 
xor edx, edx ; mov edx, 0 
mov ebx, 2 
div ebx