Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| en:multiasm:exercisebook:pc:sut:scenarios_standalone [2026/05/20 15:55] – [Implementation of calculation functions] ktokarz | en:multiasm:exercisebook:pc:sut:scenarios_standalone [2026/05/20 15:57] (current) – [Implementation of calculation functions] ktokarz |
|---|
| push r10 ; 5th argument | push r10 ; 5th argument |
| | |
| sub rsp, 20h ; shadow space | sub rsp, 20h ; 32 bytes of the shadow space |
| | |
| call sum_6_int ; function call | call sum_6_int ; function call |
| </code> | </code> |
| |
| The figure {{ref>ex_stack_caller_push}} shows the stack organisation from the caller's perspective. First, the 6th argument is pushed onto the stack. Next, the 5th argument is pushed. Next, the shadow space is reserved with the subtraction instruction **sub rsp, 20h**. Finally, the return address is pushed by the **call** instruction. The arrows point to the addresses (where RSP points) after the specified instructions. | The figure {{ref>ex_stack_caller_push}} shows the stack organisation from the caller's perspective. First, the 6th argument is pushed onto the stack. Next, the 5th argument is pushed. Next, the 32 bytes of the shadow space are reserved with the subtraction instruction **sub rsp, 20h**. Finally, the return address is pushed by the **call** instruction. The arrows point to the addresses (where RSP points) after the specified instructions. |
| <figure ex_stack_caller_push> | <figure ex_stack_caller_push> |
| {{ :en:multiasm:exercisebook:pc:ex_stack_caller_push.png?400 |Stack view from caller function}} | {{ :en:multiasm:exercisebook:pc:ex_stack_caller_push.png?400 |Stack view from caller function}} |
| <caption>Stack view from caller function</caption> | <caption>Stack view from caller function</caption> |
| </figure> | </figure> |
| ex_stack_caller_push.png | |