Можно ли использовать имена регистров MIPS с GAS (GNU ассемблер)? - PullRequest
1 голос
/ 06 апреля 2009

Если я использую имена регистров, я получаю:

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

Если я использую номер регистра ($8 вместо $t0 и $0 вместо $zero), это работает. (Я использую binutils 2.17).

1 Ответ

2 голосов
/ 17 апреля 2009

Ассемблер GNU не поддерживает символьные имена регистров напрямую. Обычный подход, при использовании gcc для управления ассемблером, заключается в использовании расширения ".S" для исходного файла ассемблера (которое говорит gcc пропустить исходный код через препроцессор C перед ассемблером) и #include заголовочный файл, содержащий определения как:

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

Тогда исходный текст на ассемблере может иметь такие выражения, как

add v0, zero, zero
...