처음에 syscall 함수에 대해서 잘 몰라서 많이 해멨습니다.
위의 사진은 syscall 에 대한 것을 나타내고 있습니다.
mov rax, 0x1 이었을때 rax = 0x1 이므로 syscall name == wirte 인 것을 알 수 있습니다.
arg0 (%rdi) == unsigned int fd
arg1 (%rsi) == 0x400500
arg2 (%rdx) == 0xf <= 위에는 edx라고 나와있습니다.
추가
풀이 과정 중간에 mov rdi, 0x1 //stdout 이라고 적어놨는데, stdout이 아니라 rdi는 함수로 넘어가는 첫번째 인자값이고, 부른 함수의 첫번째 인자의 값으로 1을 주기 위해 rdi에다가 저장한 것이라고 합니다.