26 lines
554 B
NASM
26 lines
554 B
NASM
format ELF64 executable 0
|
|
|
|
segment readable executable
|
|
|
|
entry $
|
|
; read from stdin
|
|
xor rax, rax ; is rax and rax equal to itself? yes? rax is set to 0 (for sys_read)
|
|
xor rdi, rdi ; same thing but rdi (for stdin)
|
|
mov rsi, buf ; direct addressing - move address of buf to rsi (buffer address)
|
|
mov rdx, 80 ; buffer size
|
|
syscall
|
|
|
|
; write to stdout
|
|
mov rax, 1 ; sys_write
|
|
mov rdi, 1 ; stdout
|
|
mov rdx, 80
|
|
syscall
|
|
|
|
; exit program
|
|
xor rdi, rdi ; exit code 0
|
|
mov rax, 60 ; sys_exit
|
|
syscall
|
|
|
|
segment readable writable
|
|
buf rb 80
|