Учитывая число, эта программа вычисляет факториал, но она больше не работает с числом больше 9
.section .data
.section .text
.globl _start
_start:
pushl $10
movl %eax, %ebx
call func
addl $4, %esp
movl %eax, %ebx
movl $1, %eax
int $0x80
.type func,@function
func:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
cmpl $1, %eax
je fim_loop
decl %eax
pushl %eax
call func
movl 8(%ebp), %ebx
imull %ebx, %eax
fim_loop:
movl %ebp, %esp
popl %ebp
ret
после компиляции и запуска программы, echo $? должен вернуть результат, но он возвращает 0 вместо правильного результата, кто-нибудь знает, что не так с этим кодом?