Registres

Registres

Registres : les mains du CPU

D'abord, qu'est-ce qu'un bit ? Un bit est un seul 0 ou 1, la plus petite unité d'information qu'un ordinateur peut stocker. Mettez-en 32 ensemble et vous obtenez un nombre de 32 bits, qui peut compter de 0 jusqu'à environ 4 milliards. Chaque registre et chaque emplacement mémoire en RISC-V contient un nombre de 32 bits.

Un registre est un petit emplacement de stockage à l'intérieur du processeur qui contient un nombre de 32 bits. RISC-V fournit 32 registres. Comme ils se trouvent dans le cœur du processeur, les registres sont bien plus rapides à utiliser que la mémoire principale, de plusieurs ordres de grandeur. Quelques-uns d'entre eux couvriront la majeure partie de ce que vous écrivez : t0 à t2 (valeurs temporaires), a0 à a2 (arguments et résultats), zero (toujours 0), sp (pointeur de pile) et ra (adresse de retour).

ℹ
L'onglet Simulateur montre chaque registre au fur et à mesure que sa valeur change pendant l'exécution du programme. Observer cette vue est le moyen le plus rapide de se familiariser avec le comportement des registres.
Votre premier programme : imprimer 42
# Affichez le nombre 42, puis quittez.
# a7 choisit le service et a0 porte la valeur.
li a7, 1 # service 1 = imprimer un entier
li a0, 42 # la valeur à imprimer
ecall # le faire
li a7, 10 # service 10 = sortie
ecall

signifie load immediate (charger immédiatement), et il place une constante dans un registre. sélectionne le service 1, qui affiche un entier. place le nombre à afficher dans a0. passe le contrôle au système, qui affiche la valeur dans a0. Ensuite, sélectionne le service de sortie, et termine le programme. Appuyez sur Run, puis modifiez 42 et exécutez à nouveau le programme.

Exécution du programme
0x400000li a7, 1
0x400004li a0, 42
0x400008ecall
0x40000cli a7, 10
0x400010ecall
a71
a0—
output—
pc0x400000

Mettre a7 à 1 fait que l'ecall suivant affiche un nombre.

La figure ci-dessous suit les cinq lignes ci-dessus au fur et à mesure que le simulateur les exécute. Chaque ligne porte l'adresse qu'elle occupe une fois le programme chargé, et les adresses sont espacées de quatre octets car chaque instruction RISC-V fait quatre octets de large. La case étiquetée pc, abréviation de program counter (compteur de programme), contient l'adresse de la ligne actuellement surlignée. Ce nombre est tout ce que le processeur sait de sa position dans le programme : il récupère l'instruction à l'adresse indiquée dans le compteur de programme, l'exécute, puis ajoute quatre au compteur de programme pour atteindre l'instruction suivante. Un registre reçoit sa valeur lorsque le de sa ligne s'exécute, et la sortie n'apparaît que lorsque le premier s'exécute.