Troll 0 16 марта, 2012 Опубликовано 16 марта, 2012 · Жалоба Приветствую! Коллеги, может кто подскажет. Позволяет ли GNU ARM ассемблер задать псевдо имя для регистра? Типа: __asm__ volatile ( "Var1 equ R0 \n\t" "Var2 equ R1 \n\t" "mov Var1,#1 \n\t" ); Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diwil 0 21 марта, 2012 Опубликовано 21 марта, 2012 · Жалоба UP или .def ua_c = r5 или .set u_a, r5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Troll 0 21 марта, 2012 Опубликовано 21 марта, 2012 (изменено) · Жалоба diwil! спасибо за ответ. Только чего-то не работает ".set ua_c,r5 \n\t" "mov ua_c,#0 \n\t" компилятор ругается: "Error: ARM register expected -- `mov ua_c,#0'" Изменено 21 марта, 2012 пользователем IgorKossak Поднятие темы запрещено правилами! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
diwil 0 21 марта, 2012 Опубликовано 21 марта, 2012 · Жалоба 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 0 27 марта, 2012 Опубликовано 27 марта, 2012 · Жалоба Что значит "ассемблер из Цэ вызывать"? :) Препроцессор (cpp) - это отдельная программа которую можно вызвать когда угодно и обработать какой угодно текст. Не обязательно на языке C. В gcc-враппере даже специальное значение опции -x предусмотрено - assembler-with-cpp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 27 марта, 2012 Опубликовано 27 марта, 2012 · Жалоба Слабо понятно, зачем спрашивавшему обзывать в инлайн-асме конкретный регистр, почему не положиться на тот, который предоставит компилятор, но если очень хочется... void Test() { register uint32_t Variable1 __asm__("r0"); __asm__ volatile ( "mov %[Var1], #1" : [Var1] "=r" (Variable1) : ); } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться