SEGMENT .text
GLOBAL _start
_start:
	MOV RAX, 2		; open(filename, flags)
	MOV RDI, filename
	XOR RSI, RSI		; set flags to 0: RD_ONLY
	SYSCALL
	CMP RAX, -1
	JE err
	MOV RDI, RAX		; file descriptor
	XOR RAX, RAX		; read(fd, buf, count)
	MOV RSI, buf
	MOV RDX, 19		; We read at most 19 bytes
	SYSCALL
	CMP RAX, -1
	JE err
	MOV RAX, 1		; write(fd, buf) (buf is already set from previous call)
	MOV RDI, 1		; standard output
	SYSCALL
	MOV RAX, 60		; exit(code)
	XOR RDI, RDI		; success
	SYSCALL
err:
	MOV RAX, 60		; exit(code)
	MOV RDI, 1		; 1 (fail)
	SYSCALL
	
SEGMENT .bss
buf RESB 20

SEGMENT .rodata
filename DB "file",0
