Modul ini membahas System V AMD64 ABI secara tuntas, mulai dari kontraknya, register argumen dan balikan, pembagian caller-saved dan callee-saved, stack frame beserta penyelarasannya, sampai perbedaan konvensi Microsoft x64 di Windows. ABI adalah jembatan antara assembly dan C, sehingga modul ini menjadi dasar bagi interoperabilitas keduanya.
Fungsi dan ABI
Modul antarmuka fungsi: kontrak System V AMD64, pembagian register, stack frame, dan konvensi Microsoft x64.
0/0 selesai
- System V AMD64 ABI
Kontrak pemanggilan fungsi Linux: register argumen, balikan, register yang dipertahankan, dan stack.
- Register argumen dan balikan
rdi, rsi, rdx, rcx, r8, dan r9 untuk enam argumen pertama serta rax sebagai register balikan.
- Register caller-saved dan callee-saved
Register mana yang bertahan melewati sebuah call dan mana yang harus diselamatkan sebelum ditimpa.
- Stack frame dan penyelarasan
Prolog dan epilog berbasis rbp, penyelarasan stack 16 byte sebelum call, dan akibat melanggarnya.
- Konvensi Microsoft x64
Perbedaan Windows: rcx, rdx, r8, dan r9 untuk argumen, shadow space 32 byte, dan tanpa red zone.