Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум разработчиков электроники ELECTRONIX.ru _ GNU/OpenSource средства разработки _ Inline ассемблер

Автор: paskal Mar 25 2019, 16:15

Мне нужно сделать ассемблерную вставку в GCC код. В ассемблерный код передается 32 битная константа, которая загружается в регистр. Процессор - кортекс-м1. В самом ассемблере загрузка идет как то так:

Код
    LDR R0,[DAT]
DAT:
    .WORD 0x12345678

Но если я то же самое делаю во встроенном ассемблере:
Код
    asm(".word %0"
    ::"i"(k)
    );

И вызываю вставку - myasm(0x12345678), то вместо .word 0x12345678 компилятор подставляет константу с решеткой - .word #0x12345678, что является ошибкой. Решетка в этом месте совсем не нужна.
Как мне заставить ассемблер не писать эту решетку?
Или еще какой способ введения константы в регистр подскажите.


Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)