Mi sto confondendo su cosa fa effettivamente pop
in assembly. Il valore PUSH
sposta il valore PUSH
nello stack per ultimo (ovvero non si applica se abbiamo MOV
un valore dopo l'ultimo elemento PUSH
ed) o si inserisce solo il valore che è ultimo in pila (quindi, applicabile a entrambi MOV
e PUSH
) o si apre quale valore mai indicato dal puntatore dello stack? Si consideri il seguente codice:come funziona il push and pop nell'assemblaggio
push $4
mov $5, -4(%esp)
add $4, %esp (esp pointing to an unknown value)
pop %ebp
Quindi, in questo codice sarà il valore poped in ebp
essere 4, 5, o il valore sconosciuto puntato da esp
?
Possibile duplicato di [Assembler: registri Push/Pop?] (Http://stackoverflow.com/questions/4584089/assembler-push-pop-registers) –