estou tentando fazer um loop em que dado um numero, eu tento dividi-lo por 10 sucessivamente até que o quociente seja 0, ou seja, eax seja 0, mas isso não está acontecendo. No código abaixo, a função supostamente deveria retornar 0, pois vou dividindo o numero por 10 até que o quosciente seja 0, mas a função acaba retornando -1158352680
.intel_syntax noprefix
.global verificaNumero
soma = -4
verificaNumero:
push ebp
mov ebp,esp
add esp,4 #reserva espaço para soma
mov ebx,10 # ebx <- 10 (divisor)
mov eax,[ebp+8] # eax <- numero
mov edx,0
loop:
div ebx
cmp eax,0
jg loop
sub esp,4 #libera o espaço reservado para soma
pop ebp
ret
alguém sabe o motivo disso estar acontecendo?