Можно ли использовать имена регистров MIPS с GAS (ассемблер GNU)?

StackOverflow https://stackoverflow.com/questions/721192

  •  05-09-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

add v0, zero, zero
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top