다음 어셈블리 코드를 실행했을 때 출력되는 결과로 올바른 것은?
[Code]
main:
push rbp
mov rbp, rsp
mov esi, 0xf ; esi = 0xf
mov rdi, 0x400500 ; rdi = 0x400500
call 0x400497 <write_n> ; call write_n
mov eax, 0x0 ; return 0
pop rbp
ret
write_n:
push rbp
mov rbp, rsp
mov QWORD PTR [rbp-0x8],rdi ; rbp-0x8 = 0x400500
mov DWORD PTR [rbp-0xc],esi ; rbp-0xc = 0xf
xor rdx, rdx ; rdx = 0
mov edx, DWORD PTR [rbp-0xc] ; edx = 0xf → count
mov rsi,QWORD PTR [rbp-0x8] ; rsi = 0x400500 → buf
mov rdi, 0x1 ; rdi = 0x1 → stdout
mov rax, 0x1 ; rax = 0x1 → write
syscall ; write(0x1, 0x400500, 0xf) → 0x400500부터 15Byte 표준 출력
pop rbp
ret
==================================
[Memory]
0x400500 | 0x3037207964343372 // r34dy 70 (8 Byte)
0x400508 | 0x003f367562336420 // d3bu6? (8 Byte)
===================================
[Output]
r34dy 70 d3bu6?