| git.druid.rocks | index | druid520 | wgit | src/ | linux-start.s |
src/linux-start.s
.section .text
.globl _start
.type _start, @function
_start:
xorq %rbp, %rbp # frame ptr (%rbp) = null. marks stack bottom.
movq (%rsp), %rdi # argc = first 4 bytes of stack.
leaq 8(%rsp), %rsi # argv = address of first arg ptr.
call main
movl %eax, %edi # status = ret val.
movl $60, %eax # SYS_exit = 60.
syscall
hlt # if syscall fails hang.