x64에서 추가/변경된 사항
메모리 주소가 64bit로 표현
레지스터 : RAX, RCX, RDX, RBX, RSP, RBP, RSI, RDI, R8, R9, R10, R11, R12, R13, R14, R15, RFALGS, RIP
Intel
함수 호출 규약 : 변형된 fastcall 하나로 통일
인자를 4개까지 레지스터에 저장하여 전달
1st : RCX
2nd : RDX
3rd : R8
4th : R9
5번째부터 Stack 이용([RSP + 0x20] 부터)
AT&T
함수 호출 규약 : 변형된 fastcall 하나로 통일
인자를 6개까지 레지스터에 저장하여 전달
1st : RDI
2nd : RSI
3rd : RDX
4th : RCX
5th : R8
6th : R9
이후부터는 Stack 이용
Stack & Stack Frame
서브함수에서 실제 필요한 크기보다 훨씬 크게 스텍을 확보
Parameter를 MOV를 통해 전달
Stack Frame도 RSP로 구현