Pergunta

Se eu usar registrar nomes eu recebo:

Error: illegal operands `add $t0,$zero,$zero'

Se eu usar registar número ($8 vez de $t0 e $0 vez de $zero) ele funciona. (Estou usando binutils 2,17).

Foi útil?

Solução

O GNU assembler não suporta nomes de registro simbólico diretamente. Uma abordagem comum, se estiver usando gcc para conduzir a montadora, é usar a extensão ".S" para o arquivo de origem assembler (que diz gcc para passar a fonte através do pré-processador C antes do assembler) e #include um arquivo de cabeçalho contendo definições como:

#define zero $0
#define v0   $2
#define v1   $3

Em seguida, a fonte assembler pode ter declarações como

add v0, zero, zero
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top