27 lines
506 B
NASM
27 lines
506 B
NASM
format ELF64 executable 3
|
|
; Assembly generated by the Sapphire compiler.
|
|
segment readable executable
|
|
entry start
|
|
strlen: ; -- length of null-terminated string in rdi --
|
|
xor rax, rax
|
|
mov rcx, -1
|
|
cld
|
|
repne scasb
|
|
mov rax, rcx
|
|
add rax, 2
|
|
neg rax
|
|
ret
|
|
print: ; -- print null-terminated string in rdi --
|
|
mov rsi, rdi
|
|
call strlen
|
|
mov rdx, rax
|
|
mov rdi, 1
|
|
mov rax, 1
|
|
syscall
|
|
ret
|
|
start:
|
|
; -- exit with code 0 --
|
|
mov rax, 60
|
|
xor rdi, rdi
|
|
syscall
|