2009-04-06 21 views

Répondre

2

L'assembleur GNU ne prend pas directement en charge les noms de registre symboliques. Une approche courante, si vous utilisez gcc pour piloter l'assembleur, est d'utiliser l'extension ".S" pour le fichier source assembleur (qui indique à gcc de passer la source via le préprocesseur C avant l'assembleur) et #include un fichier d'en-tête contenant des définitions comme:

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

Ensuite, la source assembleur peut avoir des déclarations comme

add v0, zero, zero 
+0

Petite puce: 'v0' et' v1' sont '$ 2' et' $ 3' ('$ 1' est' at')! –

+0

Vous avez raison - c'est ce que je reçois pour faire confiance à ma mémoire, va corriger. –

+0

Notez que l'en-tête peut déjà faire partie de votre système. Recherchez un fichier tel que/usr/include/sys/reg.h ou/usr/include/mips-linux-gnu/sys/regdef.h. –