Menu
Coddy logo textTech

Registri vs memoria

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

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

  • Registri: piccole caselle di memoria all'interno della CPU
  • Memoria (RAM): un'enorme griglia di slot numerati all'esterno della CPU

Ma perché ci sono due posti? Perché la CPU non può lavorare direttamente con la 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 ciascuno 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:

La CPU non può lavorare direttamente con i dati in memoria. I dati devono prima essere caricati nei registri.

Questo non è facoltativo. È così che è progettata la CPU. Ogni addizione, ogni confronto, ogni trasferimento di dati deve passare attraverso un registro.

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 semplicemente non può farlo. Devi prima caricarli nei registri.

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