Menu
CoddyTech

Registri vs memoria

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

Ora hai imparato a conoscere due luoghi in cui i dati possono trovarsi all'interno di un computer:

  • Registri: piccoli contenitori di dati all'interno della CPU
  • Memoria (RAM): una grande griglia di posizioni numerate all'esterno della CPU

Ma perché ci sono due posti? Perché la CPU non conserva tutto in memoria?

La risposta è la velocità. I registri sono estremamente veloci perché si trovano all'interno della CPU. La memoria è più lenta perché si trova all'esterno. La CPU può accedere a un registro in un singolo ciclo, ma accedere alla memoria richiede molto più tempo.

Confronto affiancato:

CaratteristicaRegistriMemoria (RAM)
PosizioneAll'interno della CPUAll'esterno della CPU
VelocitàEstremamente veloce (1 ciclo)Più lenta (molti cicli)
Numero di slot di archiviazioneMolto pochi (16-32 su x86-64)Milioni o miliardi
Dimensione di ogni slot8 byte (64 bit)1 byte
Come si accedePer nome (rax, rbx, rcx...)Per indirizzo (1000, msg, buffer)
Volatile?Sì (i dati scompaiono quando si spegne l'alimentazione)Sì (i dati scompaiono quando si spegne l'alimentazione)

La regola più importante dell'assembly:

Un'istruzione può usare al massimo un operando di memoria. Per combinare due valori che si trovano entrambi in memoria, caricane prima uno in un registro.

I registri sono anche il luogo in cui conservi i valori con cui lavori, perché ogni accesso alla memoria è lento.

Lo schema in tre passaggi che userai continuamente:

PassaggioCosa succedeEsempio
1. LOADCopia i dati dalla memoria in un registromov rax, [count]
2. WORKFai qualcosa con il registroadd rax, 5
3. STORECopia il risultato di nuovo in memoria (se necessario)mov [result], rax

Cosa succede se dimentichi questa regola?

Se provi ad aggiungere due numeri che si trovano entrambi in memoria, l'assembler ti darà un errore. La CPU non può farlo. Devi prima caricarne uno in un registro.

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