これを実行したところ、予想では-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