История изменений
Исправление
Assembler,
(текущая версия)
:
не, не фактические, а формальные. какую бы функцию я не взял все что я в нее передаю, сначала попадает в регистр, а после кладется на стек. но ребята, на стек попадают фактические параметры.
допустим я передал в функцию число 11. вижу что будет примерно так
void foo(int a);
вот тут "a" -есть формальный параметр.
foo(11);// тут же 11 есть фактический параметр.
понимаете?
mov $11, %rdi// это то что я передаю в функцию
так как int то будет что-то вроде этого
mov %rdi, -8(%rbp)// все! именно это будет на стеке, когда рекурсия к примеру.
но я не пойму почему они твердят о формальных параметрах на стеке.
Исходная версия
Assembler,
:
не, не фактические, а формальные. какую бы функцию я не взял все что я в нее передаю, сначала попадает в регистр, а после кладется на стек. но ребята, на стек попадают фактические параметры.
допустим я передал в функцию число 222. вижу что будет примерно так
void foo(int a);
вот тут "a" -есть формальный параметр.
foo(11);// тут же 11 есть физический параметр.
понимаете?
mov $11, %rdi// это то что я передаю в функцию
так как int то будет что-то вроде этого
mov %rdi, -8(%rbp)// все! именно это будет на стеке, когда рекурсия к примеру.
но я не пойму почему они твердят о формальных параметрах на стеке.