Ассемблер будет забыт. Предлагаю посмотреть, что делает компилятор GCC над кодом. void foo3(int a, int b, int c){printf("%d %d %d",a,b,c);return;}int main(){int a,b,c;foo3(a,b,c);}main перед вызовом foo3:mov -0xc(%rbp),%edx ; cmov -0x8(%rbp),%ecx ; bmov -0x4(%rbp),%eax ; amov %ecx,%esi ; кто скажет зачем? mov %eax,%edi ; кто скажет зачем? call xx ; call foo3 Далее в foo3:mov %edi,0x4(%rbp) ; a to auto framemov %esi,0x8(%rbp) ; b to auto framemov %edx,0xc(%rbp) ; c to auto framemov -0xc(%rbp),%ecx ; чтобы ecx было как в учебникахmov -0xc(%rbp),%edx ; чтобы edx было как в учебникахmov -0xc(%rbp),%eax ; чтобы eax было как в учебниках Если параметров будет 6, например, будет ещё веселее?