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 | |