LINUX.ORG.RU

История изменений

Исправление 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)// все! именно это будет на стеке, когда рекурсия к примеру.  

но я не пойму почему они твердят о формальных параметрах на стеке.