Luna/libs/libc/crt0.asm

35 lines
377 B
NASM
Raw Normal View History

section .text
extern _init
extern main
extern _fini
extern initialize_libc
extern exit
global _start
_start:
; Set up end of the stack frame linked list.
xor rbp, rbp
push rbp ; rip=0
push rbp ; rbp=0
mov rbp, rsp
push rdi
push rsi
call initialize_libc
call _init
pop rsi ; argv
pop rdi ; argc
call main
push rax
call _fini
pop rdi
call exit