This is just before the call opcode is invoked.
| ↑ | value of rdi | ← rsp | ||
| To higher addresses | ||||
| (to 0xffffffff) | ||||
| To lower addresses | ||||
| (to 0x00000000) | ||||
| ↓ |
This is just after the call opcode is invoked.
| ↑ | value of rdi | |||
| To higher addresses | return address | ← rsp | ||
| (to 0xffffffff) | ||||
| To lower addresses | ||||
| (to 0x00000000) | ||||
| ↓ |
THEN, perform body of the function
This is just after the caller invokes the call opcode.
| ↑ | value of rdi | |||
| To higher addresses | return address | ← rsp | ||
| (to 0xffffffff) | ||||
| To lower addresses | ||||
| (to 0x00000000) | ||||
| ↓ |
This is just after the callee invokes sub rsp, 8
| ↑ | value of rdi | |||
| To higher addresses | return address | |||
| (to 0xffffffff) | local var (result) | ← rsp | ||
| To lower addresses | ||||
| (to 0x00000000) | ||||
| ↓ |
This is after the myFunc() prologue is completed.
| ↑ | value of rdi | |||
| To higher addresses | return address | |||
| (to 0xffffffff) | local var (result) | ← [rsp+16] | ||
| value of rbx | ← [rsp+8] | |||
| value of rbp | ← [rsp] | |||
| To lower addresses | ||||
| (to 0x00000000) | ||||
| ↓ |
|
|
||||||||||||||||||||||||||||||||||||||||