GNU Assembler x64. Соглашения о вызовах функций в ABI Microsoft x64

preview_player
Показать описание
Рассматривается порядок вызова функций в Windows, где действуют соглашения о вызовах функций ABI Microsoft x64.

1. Первые четыре аргумента заносятся в регистры:
1-ый аргумент - %rcx
2-ой аргумент - %rdx
3-ий аргумент - %r8
4-ый аргумент - %r9
2. Остальные аргументы заносятся в стек
При необходимости выделяется дополнительное пространство для выравнивания
по 16-байтовой границе
3. Перед вызовом функции выделяется ещё 32 байта памяти, даже в том случае,
если у функции менее четырех входных аргументов
Рекомендации по теме
Комментарии
Автор

Спасибо. В прошлом ролике про директиву define хотел написать: Я изучаю ассемблер, жаль что нет таких же классных уроков. В итоге у Вас и про ассемблер есть целая куча занятий 😁 Это райский уголок для меня. Спасибо что вы есть, буду смотреть и принимать ваши знания. Я правда только на masm64 учусь. Но как я понял, все ассемблеры близнецы, отличаются совсем не многим, само ядро у всех одно и тоже. ❤️❤️❤️

meaningfulname
Автор

Большое спасибо за подробный детальный разбор выполнения программы на Windows. Очень удачно сделано сравнение выполнения данной программы на Linux. Такие тонкости работы программ, я думаю, вряд ли можно еще где-то найти на просторе интернета. Огромное Вам спасибо за Ваш труд!

pavelgushchin