18. SYSTEMCALL(X64)LINUX
syscall
name
%rax arg0 (%rdi) arg1 (%rsi) arg2 (%rdx)
0 read 0 unsigned int fd char *buf size_t count
1 write 1 unsigned int fd const char *buf size_t count
2 open 2 const char *
fi
lename int
fl
ags umode_t mode
60 Exit 60 Int error_code - -
19. section .data
msg: db “Hello World!”,10
len: equ $-msg
section .text
global _start
_start:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, len
syscall
mov rax, 60
mov rdi, 0
syscall
첫번째 인수로 시스템콜 번호 1번을 저장
두번째 인수로 디스크립터 번호 1번을 저장
세번째 인수로 출력할 내용을 저장
네번째 인수로 출력값의 길이를 저장