함수를 호출할 때 넘겨줄 인자를 push 할 때는 뒤에서부터 push 합니다.
(a) push 0x3
(b) push 0x2
(c) push 0x1
1, 2, 3 총 3개의 정수형 인자를 정리하는 것이기 때문에, 4 * 3 = 12 = 0xc
(d) add esp, 0xc
SYSV에서는 rdi → rsi → rdx → rcx → r8 → r9 → stack 순서로 인자를 넘겨줍니다.
(a) mov edx, 0x3
(b) mov esi, 0x2
(c) mov edi, 0x1
sysn 호출규약에서는 rdi → rsi → rdx → rcx → r8 → r9 → stack 순서로 인자를 넘겨준다고하셨는데
데이터를 가져오는 순서가 rdi → rsi → rdx 이라서
정답은 edx -> esi -> edi 순으로 위에 push 하신 개념과 비슷하게 순서되는 것인가요?
아니면 레지스터에 값을 넣는 순서는 상관이 없는건가요?