Stack pointer: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
m Annullate le modifiche di 85.41.145.130 (discussione), riportata alla versione precedente di Simone Biancolilla
Etichetta: Rollback
 
(10 versioni intermedie di 4 utenti non mostrate)
Riga 3:
{{S|componenti per computer}}
[[File:Registri principali.jpg|thumb|upright=2|[[registro (informatica)|Registri]] principali]]
Lo '''stack pointer''' (ESP) è, nelle architetture [[x86]], un registro dedicato dellaalla [[CPU]] che contiene l'indirizzo della locazione di memoria occupata dal top dello [[pila (informatica)|stack]] per permetterne le operazioni di push, che lo incrementerà, e di pop, che farà l'inverso, per permettere le operazioni che implicano l'uso dello [[stack]] che seguono la logica [[LIFO]] ovvero che l'ultimo elemento entrante sarà il primo ad uscire (Last In First Out). La memoria stack funziona come una pila di piatti: i piatti vengono aggiunti all'inizio della pila che è lo stack pointer. Invece, quando devono essere ripresi, vengono presi quei "piatti" che sono all'inizio della pila.
 
Lo [[stack]] viene allocato e deallocato continuamente quindi può esser facile perder traccia della sua "testa".
 
Per ovviare a questo inconveniente esiste il registro dedicato EBP chiamato anche frame pointer o base pointer che punta, per tutta la durata della procedura, alla prima locazione di memoria del record di attivazione in modo che si possa far riferimento al top dello stack in maniera relativa ad essa.
 
==Voci correlate==
*[[Stackpila (informatica)]]
*[[Stack overflow]]
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC||stack pointer}}
 
{{Portale|informatica}}