¿Es posible utilizar nombres de los registros MIPS con GAS (ensamblador GNU)?
Pregunta
Si utilizo nombres de registro consigo:
Error: illegal operands `add $t0,$zero,$zero'
Si utilizo el número de registro (en lugar de $8
$t0
y $0
en lugar de $zero
) funciona.
(Estoy usando binutils 2.17).
Solución
El ensamblador GNU no soporta nombres de los registros simbólicos directamente. Un enfoque común, si se utiliza gcc para conducir el ensamblador, es utilizar la extensión ".S" para el archivo fuente ensamblador (que dice gcc para pasar la fuente a través del preprocesador C antes de que el ensamblador) y # include un archivo de cabecera que contiene las definiciones como:
#define zero $0
#define v0 $2
#define v1 $3
A continuación, la fuente de ensamblador puede tener declaraciones como
add v0, zero, zero
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow