September 2017
Beginner to intermediate
290 pages
6h 58m
English
Microsoft uses its own calling convention in the 64-bit mode (long mode) using a mixed register/stack paradigm for passing procedure parameters. This means that only the first four parameters may be passed via registers and the rest (if any) should be pushed onto the stack. The following table illustrates which registers are used and in what manner:
|
Parameter index
(zero based)
|
Integer/pointer
|
Floating point
|
|
0
|
RCX
|
XMM0
|
|
1
|
RDX
|
XMM1
|
|
2
|
R8
|
XMM2
|
|
3
|
R9
|
XMM3
|
All of this looks quite clear, yet there are two things that we need to pay special attention to:
Read now
Unlock full access