diff options
Diffstat (limited to 'stdlib')
-rw-r--r-- | stdlib/main.asm | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/stdlib/main.asm b/stdlib/main.asm new file mode 100644 index 0000000..bd3d417 --- /dev/null +++ b/stdlib/main.asm @@ -0,0 +1,39 @@ +format ELF64 executable 3 + +SYS_exit = 60 +SYS_write = 1 +STDOUT = 1 + +segment readable executable +entry _start + +; rdi = the number +print_u64: +mov rcx, rsp +mov rax, rdi +mov rbx, 10 + +.L: +xor rdx, rdx +div rbx +add dl, '0' +dec rcx +mov [rcx],dl +cmp rax, 0 +jnz .L + +mov rax, SYS_write +mov rdi, STDOUT +mov rsi, rcx + +mov rdx, rsp +sub rdx, rcx + +syscall +ret + +_start: +call main +mov rax, SYS_exit +xor rdi,rdi +syscall |