None
RU
Представлена концепция дистрибутива AerynOS с обоснованием архитектурных решений
[]
OpenNews.opennet.ru: Обзоры и статьи
Ассемблер будет забыт.
Предлагаю посмотреть, что делает компилятор 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, например, будет ещё веселее?
['архитектурных'
'чтобы'
'решений'
'как'
'было'
'будет'
'framemov'
'auto'
'скажет'
'кто'
'дистрибутива'
'в'
'aerynos'
'обоснованием'
'представлена'
'с'
'учебникахmov'
'концепция']