Calcolatori elettronici/Istruzioni per il controllo del processore: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nuova pagina: {{Calcolatori elettronici}} ==Istruzioni per la gestione delle interruzioni== ===Interrupt esterni=== {{vedi anche|Calcolatori elettronici/La gestione dei dispositivi input/output#I...
 
Riga 3:
===Interrupt esterni===
{{vedi anche|Calcolatori elettronici/La gestione dei dispositivi input/output#Interrupt{{!}}A11. La gestione dei dispositivi input/output}}
Tramite gli '''interrupt esterni''', un dispositivo esterno (es. tastiera) può in qualunque momento richiedere l'attenzione del processore attraverso un segnale sul pin INT, in modo che il processore, verificando questo segnale al termine di ogni istruzione, possa interrompere l'esecuzione del programma e saltare al codice che serve il dispositivo esterno. La richiesta di interruzione è affiancata da un codice su 8 bit che identifica il dispositivo tra quelli elencati in memoria nella '''Interrupt Vector Table''' (IVT), la quale associa ogni codice di periferica all'indirizzo di partenza della procedura che serve il dispositivo, detta '''Interrupt Service Routine''' (ISR). L'indirizzo di partenza della ISR è composto dal nuovo valore del CS<ref>La ISR non può stare nello stesso segmento di codice del programma che è stato interrotto.</ref> (16 bit) e dal nuovo valore dell'IP (16 bit). La ISR deve sporcare il meno possibile la memoria che era in uso dal programma interrotto; inoltre, a differenza di una normale procedura, la ISR all'avvio salva temporaneamente nello stack, oltre al vecchio indirizzo di ritorno IP e al vecchio valore di CS, anche il registro di stato PSW che contiene i flag, che alla fine viene ripristinato tramite un'istruzione <tt>IRET</tt>. L'in­stallazioneinstallazione di un nuovo dispositivo, prima di attivare gli interrupt, richiede di caricare in memoria la ISR e aggiungere il codice del nuovo dispositivo nella IVT.
 
===Interrupt software===