PROGRAMMAZIONE DIDATTICA ANNUALE
27 Gennaio 2019Porte I/O
27 Gennaio 2019
La memoria RAM si trova tra gli indirizzi $0080 e $00FF, mentre lo stack pointer a 16bit può essere definito in qualsiasi parte della memoria RAM.
Lo stack pointer, o catasta , è una parte di memoria che viene definito dal programmatore nella parte più alta della RAM tramite unistruzione dedicata all’inizio del programma.
Principalmente viene usato come backup dei registri, se per esempio all’inizio della sub si salvano con gli opportuni comandi il contenuto dei registri principali nello stack, e alla fine si recuperano da quest ultimo ripristinando i valori iniziali, si farà in modo di non perdere il contenuto dei registri anche se nella sub vengono modificati.
Lo stack viene utilizzato anche dalla CPU quando si verifica una chiamata a subroutine o ad interrupt, questa memorizzerà la posizione (in termini di numero della riga) della chiamata, sarà indispensabile per i ritorni dalle subroutine.
Quando si verifica un interrupt la CPU userà 5bytes di spazio nello stack, mentre quando si verifica una chiamata a subroutine la CPU userà solo 2bytes per memorizzare l’indirizzo di ritorno
Nella memoria RAM oltre che ai dati risiedono anche gli indirizzi dei registri di configurazione delle porte I/O e degli altri vari registri.