Ensamblador RISC-V
Escribe y ejecuta ensamblador RISC-V en el navegador. Comienza con una sola instrucción y avanza hasta funciones y memoria. Tanto el ensamblador como el simulador se ejecutan en el navegador.
Lecciones
Países
País
Brasil
¿Brasil produce chips? Brasil diseña chips, desde el microcontrolador RISC-V BlueMacaw hasta núcleos de investigación como NoX, mientras que la fabricación nacional depende de fundiciones extranjeras. La fábrica estatal CEITEC fue disuelta por decreto en 2020.
Leer la entradaPaísUcrania
¿Ucrania produce chips? Ucrania no tiene ninguna fábrica de chips. El país está construyendo una industria fabless que diseña chips en casa y los fabrica en el extranjero, sobre las mayores reservas de titanio de Europa.
Leer la entradaReferencia
Aritmética
add
Sumar dos registros.sub
Resta un registro de otro.addi
Agregar una constante pequeña a un registro.mul
Multiplica, conservando los 32 bits bajos.mulh
32 bits altos de un producto con signo.div
División de enteros con signo.divu
División de enteros sin signo.rem
Resto con signo (módulo).remu
Resto sin signo.neg
Invierte el signo de un número.Lógica bitwise
Turnos
sll
Desplazar bits a la izquierda (por un registro).srl
Desplazar bits a la derecha, rellenando con ceros.sra
Desplazar a la derecha, manteniendo el signo.slli
Desplazar a la izquierda una cantidad fija.srli
Desplazar a la derecha por una constante, rellenando con ceros.srai
Desplazar a la derecha por una constante, manteniendo el signo.Comparar y establecer
Memoria
lw
Cargar una palabra de 32 bits desde la memoria.lh
Cargar una media palabra de 16 bits (con signo).lb
Cargar un byte (con signo).lhu
Cargar una media palabra de 16 bits (sin signo).lbu
Cargar un byte (sin signo).sw
Almacenar una palabra de 32 bits en la memoria.sh
Almacena los 16 bits bajos.sb
Almacena los 8 bits bajos.la
Cargar la dirección de una etiqueta.li
Cargar cualquier constante en un registro.mv
Copiar un registro a otro.Ramas
beq
Salta si dos registros son iguales.bne
Saltar si dos registros difieren.blt
Saltar si es menor que (con signo).bge
Saltar si es mayor o igual (con signo).bltu
Saltar si es menor que (sin signo).bgeu
Saltar si es mayor o igual (sin signo).beqz
Salta si el registro es cero.bnez
Salta si el registro no es cero.bltz
Salta si el registro es negativo.bgez
Salta cuando el registro contiene cero o un valor positivo.bgtz
Salta si el registro es positivo.blez
Salta cuando el registro contiene cero o un valor negativo.bgt
Saltar si es mayor que (con signo).ble
Saltar si es menor o igual (con signo).Saltos y funciones
jal
Llamada: salta y guarda el punto de retorno.jalr
Saltar a una dirección calculada y enlazar.j
Saltar incondicionalmente.jr
Saltar a una dirección en un registro.call
Llamar a una función.ret
Retornar de una función.lui
Cargar una constante en los bits superiores.auipc
Agregar una constante superior al PC.Sistema
ecall
Pídele al sistema que haga algo.nop
No hacer nada por una instrucción.ebreak
Detén el programa en un punto de interrupción.mret
Regresar desde un controlador de trampa.wfi
Espera hasta que llegue una interrupción.csrrw
Intercambiar el contenido de un registro con un registro de control.csrrs
Leer un registro de control y establecer los bits seleccionados en él.csrrc
Leer un registro de control y borrar bits en él.csrrwi
Escribe una constante en un registro de control y lee el valor anterior.csrrsi
Leer un registro de control y establecer bits a partir de una constante.csrrci
Leer un registro de control y borrar bits de una constante.csrr
Leer un registro de control.csrw
Escribir un registro en un registro de control.csrs
Establece bits en un registro de control.csrc
Borrar bits en un registro de control.csrwi
Escribe una constante en un registro de control.csrsi
Establece bits en un registro de control a partir de una constante.csrci
Borrar bits en un registro de control a partir de una constante.