Ассемблер в Linux для программистов C: различия между версиями

Содержимое удалено Содержимое добавлено
заметки о 64битной архитектуре
Нет описания правки
Строка 998:
 
* Calling convention. Параметры функции передаются через регистры <code>%rdi</code>, <code>%rsi</code>, ... А значение возвращается через <code>%rax</code>
* Очень важно, чтобы указатель на стек <code>%rsp</code> был выравнен по 168-тии байтам! То есть, чтобы его значение заканчивалось на ноль. Если не заканчивается, то нужно положить что-нибудь в стек. Зачем это делается? Потому что процессор наиболее эффективно читает память по адресам, кратным длине своего слова. Если не выравнять стек, то будет segmentation fault.
 
*