extern strlen section .rodata NL db 10 section .text global print global puts ;----- print (char* string) -----; ; return value: N/A print: push rbp mov rbp, rsp push rdi sub rsp, 8 call strlen mov rdx, rax add rsp, 8 pop rdi mov rax, 1 mov rsi, rdi mov rdi, 1 syscall leave ret ;----- puts (char* string) -----; ; return value: N/A puts: push rbp mov rbp, rsp push rdi sub rsp, 8 call print add rsp, 8 pop rdi mov rax, 1 mov rdi, 1 mov rsi, NL mov rdx, 1 syscall leave ret