Menu
Coddy logo textTech

Come funzionano le istruzioni

Fa parte della sezione Fondamenti del percorso Assembly di Coddy. Lezione 4 di 45.

Sai che la CPU esegue le istruzioni una alla volta. Ma come fa la CPU a sapere quale istruzione eseguire dopo? Dove sono memorizzate le istruzioni? E com’è fatta un’istruzione?

Le istruzioni sono numeri.

Questa è una verità fondamentale sui computer. Tutto è un numero. I dati con cui lavori (come il numero 42) sono un numero. L'indirizzo in cui risiedono i dati (come 1000) è un numero. E anche le istruzioni stesse (come mov, add, cmp) sono numeri.

Quando scrivi codice assembly come mov rax, 5, l'assemblatore converte questo testo leggibile da una persona in un numero che la CPU comprende. Questo numero è chiamato codice istruzione.

Dove sono memorizzate le istruzioni?

Le istruzioni sono memorizzate in memoria, proprio come i dati. Non esiste un posto speciale per le istruzioni. La memoria contiene entrambi:

  • Dati (numeri, caratteri, array)
  • Istruzioni (il programma stesso)

La CPU non conosce la differenza. Legge semplicemente ciò che si trova all’indirizzo di memoria indicato dal Program Counter. Hai imparato brevemente a conoscere il PC nella lezione 0.1. Ora è il momento di capire esattamente come funziona.

Il contatore di programma (chiamato anche puntatore alle istruzioni) è un registro speciale all'interno della CPU. Il suo unico compito è contenere l'indirizzo di memoria della prossima istruzione da eseguire.

Il ciclo di recupero ed esecuzione:

La CPU ripete per sempre questi tre passaggi:

PassaggioCosa succede
1. FETCHLegge l’istruzione all’indirizzo in PC
2. EXECUTEEsegue quell’istruzione
3. ADVANCESposta PC all’istruzione successiva

Esempio semplice:

Se PC = 1000, la CPU:

  • Recupera l'istruzione all'indirizzo 1000
  • La esegue
  • Sposta PC all'indirizzo successivo (1000 + dimensione dell'istruzione)

Poi si ripete con il nuovo valore di PC.

Com'è fatta un'istruzione:

Ogni istruzione ha due parti:

ParteCosa faEsempio
OpcodeCosa FAREmov, add, cmp
OperandiSu cosa farlorax, 5, [result]

Alcune istruzioni hanno un operando (come inc rax per aggiungere 1). Alcune ne hanno due (come mov rax, 5). Alcune ne hanno tre (come add rax, rbx, rcx in alcune architetture).

Provalo tu

Questa lezione non include una sfida di codice.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Assembly