У меня есть функция, которая вызывается main.Предположим, что имя функции funct1
.funct1
вызывает другую функцию с именем read_input
.
Теперь предположим, что funct1
начинается следующим образом:
push %rbp
push %rbx
sub $0x28, %rsp
mov $rsp, %rsi
callq 4014f0 read_input
cmpl $0x0, (%rsp)
jne (some terminating function)
Итак, несколько вопросов:
- В этом случае,
read_input
имеет только один аргумент, который является %rbx
? - Кроме того, если указатель стека уменьшается на
0x28
, это означает, что строка размера 0x28
выталкивается в стек?(Я знаю, что это строка). - А каково значение
mov %rsp, %rsi
перед вызовом функции? - И, наконец, когда возвращается
read_input
, куда помещается возвращаемое значение?
Спасибо и извините за вопросы, но я только начинаю изучать x86!