Я пишу сборку программы подсчета факториала. И у меня есть два вопроса.Необходимое решение в отношении программы сборки: выход и целочисленное максимальное количество выходных данных
Почему максимальное количество выходных данных может составлять до 255? Как я могу это исправить?
Как я могу сделать автоматический вывод, чтобы консоль, вместо того, чтобы писать «echo $?».
здесь код:
SYSCALL = 0X80
STDIN = 0
STDOUT = 1
SYSREAD = 3
SYSWRITE = 4
SYSEXIT = 1
.section .data
NUMBER = 5
.section .text
.globl _start
_start:
pushl $NUMBER
call factorial
addl $4, %esp
movl %eax, %ebx
mov $SYSEXIT, %eax
int $SYSCALL
.type factorial, @function
factorial:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
cmpl $1, %eax
jle end_factorial
decl %eax
pushl %eax
call silnia
movl 8(%ebp), %ebx
imull %ebx, %eax
end_factorial:
movl %ebp, %esp
popl %ebp
ret
Вам нужно создать локальную область переменных в стеке, чтобы вы могли преобразовать число в строку. Прочитайте на кадрах стека. –