.global _start .global __syscall .text _start: // Run main call main // Exit process mov %rax, %rdi mov $60, %rax syscall __syscall: // Save the config (except rax) push %rdi push %rsi push %rdx push %r10 // Make the syscall mov %rdi, %rax mov %rsi, %rdi mov %rdx, %rsi mov %rcx, %rdx mov %r8d, %r10d syscall // Restore and return pop %r10 pop %rdx pop %rsi pop %rdi retq