Come esegue le istruzioni il microprocessore Un’istruzione è sempre composta da più operazioni elementari
Esempio Supponiamo che il microprocessore debba eseguire la somma fra il contenuto della locazione di memoria di indirizzo 100 e la locazione di memoria di indirizzo 200 e debba memorizzare il risultato nella locazione di indirizzo 300
Indirizzo istruzione istruzione Indirizzo 100 Contenuto locazione 100 Indirizzo 200 Contenuto Locazione 200 Contenuto registro A Contenuto registro B risultato Indirizzo 300 risultato Per prima cosa occorre prelevare l’istruzione dalla memoria. L’indirizzo della locazione che contiene l’istruzione sta nel program counter e va spostato sul bus indirizzi per dire alla memoria quale locazione ci interessa leggere. Il segnale READ indica alla memoria che il microprocessore vuole leggere Dopo che l’istruzione è stata depositata nel registro istruzioni viene decodificata dal decoder istruzioni che provvede a generare i segnali per impartire gli ordini agli altri componenti del microprocessore affinchè compiano le operazioni necessarie all’esecuzione dell’istruzione Va inserito sul bus indirizzi l’indirizzo della locazione 100 che contiene il primo dato da sommare. Si attiva di nuovo READ e si preleva dal bus dati il dato che la locazione di memoria 100 contiene. Tale dato viene memorizzato temporaneamente nel registro A Va inserito sul bus indirizzi l’indirizzo della locazione 100 che contiene il primo dato da sommare. Si attiva di nuovo READ e si preleva dal bus dati il dato che la locazione di memoria 100 contiene. Tale dato viene memorizzato temporaneamente nel registro A Occorre procedere nello stesso modo per prelevare il contenuto della locazione 200 e portarlo nel registro B Ora che il mircoprocessore possiede entrambi i dati li porta nella ALU per eseguire la somma. Il risultato verrà memorizzato nel registro C Ora che il mircoprocessore possiede entrambi i dati li porta nella ALU per eseguire la somma. Il risultato verrà memorizzato nel registro C Infine bisogna mettere sul bus indirizzi l’indirizzo della locazione di memoria in cui volgiamo memorizzare il risultato, poi spostiamo il contenuto del registro C sul bus dati in modo che la memoria lo possa leggere e attivare il segnale di WRITE in modo che la memoria capisca che quel dato va memorizzato nella locazione indicata