summary refs log tree commit diff
path: root/src/start.s
blob: 683bfe79aeb66af90b15f5ce7de01076e7f2a928 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.section .text
.globl _start
.type _start, @function
_start:
	xorq %rbp, %rbp # frame ptr (%rbp) = null. marks stack bottom.

	movl (%rsp), %edi # 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 $1, %eax # SYS_exit = 1.
	syscall

	.size _start, .-_start
	hlt # if syscall fails hang.