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).
# Stampa il numero 42, poi esce.# a7 sceglie il servizio e a0 porta il valore.li a7, 1 # servizio 1 = stampa interoli a0, 42 # il valore da stampareecall # falloli a7, 10 # servizio 10 = uscitaecall
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.
Impostare a7 a 1 fa sì che la successiva ecall stampi un numero.
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 .