Перейти к содержанию
    

ARM Assembler; Определить имя для регистра;

Приветствую!

 

Коллеги, может кто подскажет.

Позволяет ли GNU ARM ассемблер задать псевдо имя для регистра? Типа:

__asm__ volatile (
"Var1 equ R0  \n\t"
"Var2 equ R1   \n\t"
"mov  Var1,#1  \n\t"
);

 

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

diwil! спасибо за ответ.

Только чего-то не работает

 

                ".set    ua_c,r5            \n\t"
                "mov    ua_c,#0            \n\t"

компилятор ругается: "Error: ARM register expected -- `mov ua_c,#0'"

Изменено пользователем IgorKossak
Поднятие темы запрещено правилами!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

diwil! спасибо за ответ.

Только чего-то не работает

 

                ".set    ua_c,r5            \n\t"
                "mov    ua_c,#0            \n\t"

компилятор ругается: "Error: ARM register expected -- `mov ua_c,#0'"

 

значится облом.

однако, если ассемблер из Цэ вызывать,

то можно просто Сишными дефайнами

#define VAR r1

и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что значит "ассемблер из Цэ вызывать"? :)

Препроцессор (cpp) - это отдельная программа которую можно вызвать когда угодно и обработать какой угодно текст. Не обязательно на языке C.

В gcc-враппере даже специальное значение опции -x предусмотрено - assembler-with-cpp

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Слабо понятно, зачем спрашивавшему обзывать в инлайн-асме конкретный регистр, почему не положиться на тот, который предоставит компилятор, но если очень хочется...

void Test()
{
    register uint32_t Variable1 __asm__("r0");
    __asm__ volatile
    (
        "mov  %[Var1], #1"
        : [Var1] "=r" (Variable1)
        :
    );
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...