Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ARM Assembler; Определить имя для регистра;
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Troll
Приветствую!

Коллеги, может кто подскажет.
Позволяет ли GNU ARM ассемблер задать псевдо имя для регистра? Типа:
Код
__asm__ volatile (
"Var1 equ R0  \n\t"
"Var2 equ R1   \n\t"
"mov  Var1,#1  \n\t"
);


Спасибо.
diwil
Цитата(Troll @ Mar 21 2012, 12:03) *
UP


или
.def ua_c = r5
или
.set u_a, r5
Troll
diwil! спасибо за ответ.
Только чего-то не работает

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

компилятор ругается: "Error: ARM register expected -- `mov ua_c,#0'"
diwil
Цитата(Troll @ Mar 21 2012, 17:26) *
diwil! спасибо за ответ.
Только чего-то не работает

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

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


значится облом.
однако, если ассемблер из Цэ вызывать,
то можно просто Сишными дефайнами
#define VAR r1
и т.д.
alx2
Что значит "ассемблер из Цэ вызывать"? sm.gif
Препроцессор (cpp) - это отдельная программа которую можно вызвать когда угодно и обработать какой угодно текст. Не обязательно на языке C.
В gcc-враппере даже специальное значение опции -x предусмотрено - assembler-with-cpp
Сергей Борщ
Слабо понятно, зачем спрашивавшему обзывать в инлайн-асме конкретный регистр, почему не положиться на тот, который предоставит компилятор, но если очень хочется...
CODE
void Test()
{
    register uint32_t Variable1 __asm__("r0");
    __asm__ volatile
    (
        "mov  %[Var1], #1"
        : [Var1] "=r" (Variable1)
        :
    );
}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.