Ho le idee un pò confuse riguardo lo stack in assembly. Per esempio, dato questo codice:
Lo stack di questa banale funzione è questo (scusate ma le infografiche non fanno per me):
Il problema ora si pone quando voglio usare una funziona annitadata che chiama parametri, i parametri della funziona madre e le push. Il codice funziona ma voglio capire la stack
CODICE:
Dove si trovano ret ed %ebx ora? :help:
Codice:
.globl f
f:
push %ebx
movl 8(%esp), %eax
movl 12(%esp), %ebx
addl %ebx, %eax
ret
Lo stack di questa banale funzione è questo (scusate ma le infografiche non fanno per me):
Il problema ora si pone quando voglio usare una funziona annitadata che chiama parametri, i parametri della funziona madre e le push. Il codice funziona ma voglio capire la stack
CODICE:
Codice:
.code32
.globl f
f:
pushl %ebx
movl 8(%esp), %ebx
subl $8, %esp # Creo posto nella stack per i parametri
movl $1, (%esp)
movl $2, 4(%esp)
call a
addl %ebx, %eax
addl $8, %esp #Tolgo posto nella stack
popl %ebx
ret
Dove si trovano ret ed %ebx ora? :help: