Registros
Registros: as mãos do processador
Primeiro, o que é um bit? Um bit é um único 0 ou 1, a menor unidade de informação que um computador pode armazenar. Junte 32 deles e você tem um número de 32 bits, que pode contar de 0 até cerca de 4 bilhões. Cada registrador e cada slot de memória no RISC-V contém um número de 32 bits.
Um registrador é um pequeno slot de armazenamento dentro do processador que contém um número de 32 bits. O RISC-V fornece 32 registradores. Como eles ficam no núcleo do processador, os registradores são muito mais rápidos de usar do que a memória principal, por ordens de magnitude. Alguns deles cobrirão a maior parte do que você escreve: t0 a t2 (valores temporários), a0 a a2 (argumentos e resultados), zero (sempre 0), sp (ponteiro de pilha) e ra (endereço de retorno).
# Imprima o número 42, então saia.# a7 escolhe o serviço e a0 carrega o valor.li a7, 1 # serviço 1 = imprimir inteiroli a0, 42 # o valor a imprimirecall # faça issoli a7, 10 # serviço 10 = sairecall
significa load immediate (carregar imediato), e coloca uma constante em um registrador. seleciona o serviço 1, que imprime um inteiro. coloca o número a imprimir em a0. passa o controle para o sistema, que imprime o valor em a0. Em seguida, seleciona o serviço de saída, e encerra o programa. Pressione Run, depois altere 42 e execute o programa novamente.
Definir a7 como 1 faz com que a próxima ecall imprima um número.
pc, abreviação de program counter (contador de programa), contém o endereço da linha atualmente destacada. Esse número é tudo o que o processador sabe sobre sua posição no programa: ele busca a instrução no endereço indicado no contador de programa, executa-a e então adiciona quatro ao contador de programa para chegar à próxima instrução. Um registrador recebe seu valor quando o em sua linha é executado, e a saída aparece apenas quando o primeiro é executado.