To illustrate the pushl instruction suppose the current stack frame is:
R[%esp] = 0x08003000 R[%ebp] = 0x080030a4 R[%eax] = 20
0x08003000 | 5 |
Rest of Stack Frame | |
0x080030a4 |
Now execute: pushl 10 The change to registers and the stack:
R[%esp] = 0x08002ffc R[%ebp] = 0x080030a4 R[%eax] = 20
0x08002ffc | 10 |
0x08003000 | 5 |
Rest of Stack Frame | |
0x080030a4 |