Pseudoinstrucciones en el risc-V 32i

Las pseudoinstrucciones desde el punto de vista del programador se pueden considerar instrucciones, pero desde el punto de vista de la arquitectura no existen como tal, cuando nosotros escribimos una de estas el compilar la transforma en una o más instrucciones reales.

  • La principal diferencia entre una instrucción y una pseudoinstrucción es que la instrucción existe físicamente en el procesador como un circuito integrado que la realiza.
  • Las pseudoinstrucciones nos permiten tener desde el punto de vista del programador más instrucciones sin incrementar el precio, consumo ,y complejidad del chip.
  • Están estandarizadas a todos los compiladores de manera que no genera ningún problema su uso.
  • Desde el punto de vista del programador se diferencia de una instrucción en la posibilidad de que al ser la instrucción traducida, puede traducirse a una o varias instrucciones con lo que los tiempos de ejecución no es el mismo para todas.
  • A la hora de ver el código máquina estas no aparecerán ninguna realizada.
  • Comodidad.
Tiempo
nemónico nombre ejemplo explicación traducción
nop
 nop 
addi x0, x0 , 0
Asignación
nemónico nombre ejemplo explicación traducción
li asignar valor
 li x8 , 7 
x8 = 7 addi x8, x0,7
la cargar dirección
 la x8 , a 
x8 = puntero de a
mv "mover" o copiar valor
 mv x8 , x7 
x8 = x7 add x8, x0,7x,0
Aritméticas
nemónico nombre ejemplo explicación traducción
neg complemento a dos
 neg x8 , x9 
x8 = -(x9) sub x8 , x0 , x9
Lógicas
nemónico nombre ejemplo explicación traducción
not complemento a uno
 not x8 , x9 
x8 = ¬ x9 xori x8 , x9 , -1
Salto
nemónico nombre ejemplo explicación traducción
b salto incondicional
 b eti 
ejecuta la instrución de donde este la etiqueta eti
j jump
 j x0 , -12 
salta 12 pasos atrás
jr jump al registro
 jr x8 
salta al registro x8
ret jump
 ret 
salta donde indica x1