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

¿Fue útil?

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