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 risiedere all'interno di un computer:

  • Registri: minuscole caselle di memoria all'interno della CPU
  • Memoria (RAM): una gigantesca griglia di celle 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 vi si accedePer nome (rax, rbx, rcx...)Per indirizzo (1000, msg, buffer)
Volatile?Sì (scompare quando si spegne l'alimentazione)Sì (scompare quando si spegne l'alimentazione)

La regola più importante nell'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

Che 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