42 lines
485 B
NASM
42 lines
485 B
NASM
extern NR_write
|
|
extern strlen
|
|
|
|
section .rodata
|
|
NL db 0xA
|
|
section .text
|
|
global print
|
|
global puts
|
|
|
|
;----- print (char* string) -----;
|
|
; return value: N/A
|
|
print:
|
|
push rbp
|
|
mov rbp, rsp
|
|
|
|
call strlen
|
|
mov rdx, rax
|
|
mov rax, NR_write
|
|
mov rsi, rdi
|
|
mov rdi, 1
|
|
syscall
|
|
|
|
leave
|
|
ret
|
|
;----- puts (char* string) -----;
|
|
; return value: N/A
|
|
puts:
|
|
push rbp
|
|
mov rbp, rsp
|
|
|
|
mov r10, rdi
|
|
call print
|
|
mov rdi, r10
|
|
mov rax, NR_write
|
|
mov rdi, 1
|
|
mov rsi, NL
|
|
mov rdx, 1
|
|
syscall
|
|
|
|
leave
|
|
ret
|