J'essaie de diviser deux nombres dans l'assemblage. Je travaille sur l'assemblage d'Irvine pour le livre d'ordinateurs Intel et je ne peux pas faire de division pour la vie de moi.masm division overflow
Voici mon code
.code
main PROC
call division
exit
main ENDP
division PROC
mov eax, 4
mov ebx, 2
div ebx
call WriteDec
ret
divison ENDP
END main
Où WriteDec devrait écrire ce nombre est dans le registre eax (doit être réglé sur le quotient après l'appel de la division). Au lieu de cela, chaque fois que je l'exécute, le studio visuel plante (le programme compile cependant).
Pouvez-vous parcourir dans le débogueur Visual Studio? Jusqu'où allez-vous si vous entrez dans chaque instruction? –
Exception non gérée à 0x00401075 dans Project.exe: 0xC0000095: dépassement d'entier. Happens juste après l'appel à div. –
Si vous divisez par 2 et vous êtes intéressé par la performance, vous pouvez envisager d'utiliser SHR. –