アセンブリでidivlを実行
これを実行したところ、予想では-21
になると思っていたのですが、実際には75350281
という値が表示されました。色々と調べたのですが原因がわからず詰まっています。誰かお力添え願えませんか。
.data
L_fmt:
.ascii "%d\n\0"
.text
.globl _main
_main:
pushl %ebp
movl %esp, %ebp
movl $0, %eax
movl $0, %ebx
movl $0, %ecx
movl $0, %edx
movl $1, %ebx
imull $10, %ebx
addl $2, %ebx
imull $10, %ebx
addl $3, %ebx
imull $10, %ebx
addl $4, %ebx
negl %ebx
addl %ebx, %eax
movl $5, %ebx
imull $10, %ebx
addl $7, %ebx
idivl %ebx
pushl %eax
pushl $L_fmt
call _printf
addl $16, %esp
leave
ret