Assembly RISC-V
Escreva e execute assembly RISC-V no navegador. Comece com uma única instrução e avance até funções e memória. Tanto o montador quanto o simulador são executados no navegador.
Lições
Países
País
Brasil
O Brasil produz chips? O Brasil projeta chips, do microcontrolador RISC-V BlueMacaw a núcleos de pesquisa como o NoX, enquanto a fabricação nacional depende de fundições estrangeiras. A fábrica estatal CEITEC foi dissolvida por decreto em 2020.
Ler a entradaPaísUcrânia
A Ucrânia produz chips? A Ucrânia não tem fábrica de chips. O país está construindo uma indústria fabless que projeta chips internamente e os manda fabricar no exterior, além de possuir as maiores reservas de titânio da Europa.
Ler a entradaReferência
Aritmética
add
Soma dois registradores.sub
Subtrai um registrador de outro.addi
Soma uma constante pequena a um registrador.mul
Multiplica, mantendo os 32 bits menos significativos.mulh
32 bits mais significativos de um produto com sinal.div
Divisão inteira com sinal.divu
Divisão inteira sem sinal.rem
Resto com sinal (módulo).remu
Resto sem sinal.neg
Inverte o sinal de um número.Lógica binária
Deslocamentos
sll
Desloca os bits à esquerda (segundo um registrador).srl
Desloca os bits à direita, preenchendo com zeros.sra
Desloca à direita, mantendo o sinal.slli
Desloca à esquerda por um valor fixo.srli
Desloca à direita por uma constante, preenchendo com zeros.srai
Desloca à direita por uma constante, mantendo o sinal.Comparação e atribuição
Memória
lw
Carrega uma palavra de 32 bits da memória.lh
Carrega uma meia-palavra de 16 bits (com sinal).lb
Carrega um byte (com sinal).lhu
Carrega uma meia-palavra de 16 bits (sem sinal).lbu
Carrega um byte (sem sinal).sw
Grava uma palavra de 32 bits na memória.sh
Grava os 16 bits menos significativos.sb
Grava os 8 bits menos significativos.la
Carrega o endereço de um rótulo.li
Carrega qualquer constante em um registrador.mv
Copia um registrador para outro.Desvios
beq
Desvia se dois registradores forem iguais.bne
Desvia se dois registradores forem diferentes.blt
Desvia se menor (com sinal).bge
Desvia se maior ou igual (com sinal).bltu
Desvia se menor (sem sinal).bgeu
Desvia se maior ou igual (sem sinal).beqz
Desvia se o registrador for zero.bnez
Desvia se o registrador for diferente de zero.bltz
Salte se o registrador for negativo.bgez
Salta quando o registrador contém zero ou um valor positivo.bgtz
Pule se o registrador for positivo.blez
Salte quando o registrador contém zero ou um valor negativo.bgt
Desvia se maior (com sinal).ble
Desvia se menor ou igual (com sinal).Saltos e funções
jal
Chama: salta e guarda o ponto de retorno.jalr
Salta para um endereço calculado, e vincula.j
Salta incondicionalmente.jr
Salta para um endereço contido em um registrador.call
Chama uma função.ret
Retorna de uma função.lui
Carrega uma constante nos bits mais significativos.auipc
Soma uma constante mais significativa ao PC.Sistema
ecall
Solicita ao sistema que faça algo.nop
Não faz nada durante uma instrução.ebreak
Parar o programa em um ponto de interrupção.mret
Retorno de um manipulador de trap.wfi
Aguarde até que uma interrupção chegue.csrrw
Troque o conteúdo de um registrador com um registrador de controle.csrrs
Ler um registrador de controle e definir os bits selecionados nele.csrrc
Ler um registrador de controle e limpar bits nele.csrrwi
Escrever uma constante em um registrador de controle e ler o valor antigo.csrrsi
Ler um registrador de controle e definir bits a partir de uma constante.csrrci
Leia um registrador de controle e limpe bits de uma constante.csrr
Ler um registrador de controle.csrw
Escrever um registrador em um registrador de controle.csrs
Definir bits em um registrador de controle.csrc
Limpar bits em um registrador de controle.csrwi
Escreva uma constante em um registrador de controle.csrsi
Definir bits em um registrador de controle a partir de uma constante.csrci
Limpar bits em um registrador de controle a partir de uma constante.