From f090d484ab9425be9d7e4e3f42ba4224dde35c2d Mon Sep 17 00:00:00 2001 From: A404M Date: Wed, 29 Jan 2025 03:06:16 +0330 Subject: move assembly to new file make constants to have a separate token --- stdlib/main.asm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 stdlib/main.asm (limited to 'stdlib') 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 -- cgit v1.2.3