Stack frame: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m smistamento lavoro sporco e fix vari |
|||
Riga 1:
{{F|
In informatica, uno '''stack frame''' è una zona di memoria del [[call stack]] che contiene i dati necessari alla subroutine (o funzione) '''''attualmente in esecuzione'''''.
Esso ha, a sua volta, una struttura a [[Pila (informatica)|stack]] (pila) e contiene, alla sua base, i dati per ripristinare i registri puntatore del processore (come ad esempio i registri EBP e ESP nell'architettura [[IA-32]]), facendoli tornare all'istruzione immediatamente successiva alla chiamata della funzione in esecuzione, nel flusso del programma principale (o della funzione chiamante).
== Introduzione ==
Quando un programma compilato viene eseguito su un [[Computer|calcolatore]], questo deve allocare della memoria per la sua esecuzione.
La memoria per l'esecuzione è una porzione di memoria divisa in zone ([[Segmentazione (memoria)|segmentazione della memoria]]):
Riga 18:
== Funzionamento di esempio (architettura [[IA-32]]) ==
Quando viene richiamata una funzione, diversi elementi vengono inseriti nello stack, in una struttura chiamata '''stack frame'''. il [[IA-32|registro]] EBP, chiamato talvolta ''frame pointer'' (FP) o ''local base pointer'' (LB), viene utilizzato per riferirsi a variabili presenti nel frame dello stack corrente.<ref>{{Cita libro|cognome=Erickson, Jon, criptologo.|titolo=L'arte dell'hacking : le idee, gli strumenti, le tecniche degli hacker|url=https://www.worldcat.org/oclc/799623398|accesso=1º dicembre 2019
Ciascuno stack frame contiene i parametri della funzione, le sue variabili locali e due puntatori che sono necessari per ripristinare la situazione iniziale:
Riga 39:
{{portale|informatica}}
[[Categoria:Informatica]]
[[Categoria:Microprocessori Intel]]
|