Iscrizioni

Iscrizioni

Iscrizioni: le mani del processore

Innanzitutto, cos'è un bit? Un bit è un singolo 0 o 1, la più piccola unità di informazione che un computer può memorizzare. Mettine insieme 32 e ottieni un numero a 32 bit, che può contare da 0 fino a circa 4 miliardi. Ogni registro e ogni slot di memoria in RISC-V contiene un numero a 32 bit.

Un registro è un piccolo slot di archiviazione all'interno del processore che contiene un numero a 32 bit. RISC-V fornisce 32 registri. Poiché si trovano nel core del processore, i registri sono molto più veloci da usare rispetto alla memoria principale, di ordini di grandezza. Alcuni di essi copriranno la maggior parte di ciò che scrivi: da t0 a t2 (valori temporanei), da a0 a a2 (argomenti e risultati), zero (sempre 0), sp (stack pointer) e ra (indirizzo di ritorno).

ℹ
La scheda Simulatore mostra ogni registro mentre il suo valore cambia durante l'esecuzione del programma. Osservare quella vista è il modo più rapido per farsi un'idea di come si comportano i registri.
Il tuo primo programma: stampa 42
# Stampa il numero 42, poi esce.
# a7 sceglie il servizio e a0 porta il valore.
li a7, 1 # servizio 1 = stampa intero
li a0, 42 # il valore da stampare
ecall # fallo
li a7, 10 # servizio 10 = uscita
ecall

sta per load immediate (carica immediato) e inserisce una costante in un registro. seleziona il servizio 1, che stampa un intero. mette il numero da stampare in a0. passa il controllo al sistema, che stampa il valore in a0. Poi seleziona il servizio di uscita, e termina il programma. Premi Run, poi modifica 42 ed esegui di nuovo il programma.

Esecuzione del programma
0x400000li a7, 1
0x400004li a0, 42
0x400008ecall
0x40000cli a7, 10
0x400010ecall
a71
a0—
output—
pc0x400000

Impostare a7 a 1 fa sì che la successiva ecall stampi un numero.

La figura seguente segue le cinque righe precedenti mentre il simulatore le esegue. Ogni riga porta l'indirizzo che occupa una volta caricato il programma, e gli indirizzi distano quattro byte l'uno dall'altro perché ogni istruzione RISC-V è larga quattro byte. Il riquadro etichettato pc, abbreviazione di program counter (contatore di programma), contiene l'indirizzo della riga attualmente evidenziata. Quel numero è tutto ciò che il processore sa della sua posizione nel programma: preleva l'istruzione all'indirizzo nel contatore di programma, la esegue, poi aggiunge quattro al contatore di programma per raggiungere l'istruzione successiva. Un registro riceve il suo valore quando viene eseguito il sulla sua riga, e l'output appare solo quando viene eseguito il primo .