El lenguaje ensamblador RISC-V es un lenguaje de programación de bajo nivel que se utiliza para generar código objeto para la familia de procesadores RISC-V . Los lenguajes ensambladores están estrechamente vinculados a las instrucciones de código máquina de la arquitectura, lo que permite un control preciso del hardware.
Entre los ensambladores se incluyen GNU Assembler y LLVM .
Palabras clave
Palabras clave reservadas del lenguaje ensamblador RISC-V.
- agregar
- addi
- y
- Y yo
- beq
- bge
- bgeu
- blt
- bltu
- bne
- libra
- lbu
- lh
- lhu
- lw
- o
- ori
- sb
- sh
- todo
- slli
- slt
- slti
- sltiu
- sltu
- sra
- srai
- srl
- srli
- sub
- sudoeste
- xor
- xori
Mnemotecnias y códigos de operación
Cada instrucción en el lenguaje ensamblador RISC-V está representada por un mnemónico que a menudo se combina con uno o más operandos para traducirse en uno o más bytes conocidos como código de operación .
Registros
Los procesadores RISC-V cuentan con un conjunto de registros que sirven para almacenar datos binarios y direcciones durante la ejecución del programa. Estos registros se clasifican en registros de enteros y registros de punto flotante.
Tipos de instrucciones
Las instrucciones RISC-V utilizan codificación de longitud variable.
Extensiones:
- instrucciones atómicas
- punto flotante de precisión simple
- punto flotante de doble precisión
- manipulación de bits
- criptografía
- hipervisor
- supervisor
- Instrucciones para SIMD empaquetado
- vector
Instrucciones de punto flotante
El lenguaje ensamblador RISC-V incluye instrucciones para una unidad de punto flotante (FPU).
Instrucciones SIMD
En gran medida, estos procesos realizan la misma operación en paralelo sobre muchos valores.
Flujo del programa
El lenguaje ensamblador RISC-V tiene instrucciones de salto condicional basadas en la comparación: beq(igual), bne(distinto de), blt(menor que, con signo), bltu(menor que, sin signo), bge(mayor o igual que, con signo) y bgeu(mayor o igual que, sin signo).
Ejemplos
.section .text .globl _start _start: lui a1 , %hi ( msg ) # cargar msg(hi) addi a1 , a1 , %lo ( msg ) # cargar msg(lo) jalr ra , puts 2: j 2 b.section .rodata msg: .string "Hola Mundo\n"Véase también
Enlaces externos
- lenguajes ensamblador
- RISC-V