Мне нужно сделать ассемблерную вставку в GCC код. В ассемблерный код передается 32 битная константа, которая загружается в регистр. Процессор - кортекс-м1. В самом ассемблере загрузка идет как то так:
Код
LDR R0,[DAT]
DAT:
.WORD 0x12345678
Но если я то же самое делаю во встроенном ассемблере:
Код
asm(".word %0"
::"i"(k)
);
И вызываю вставку - myasm(0x12345678), то вместо .word 0x12345678 компилятор подставляет константу с решеткой - .word #0x12345678, что является ошибкой. Решетка в этом месте совсем не нужна.
Как мне заставить ассемблер не писать эту решетку?
Или еще какой способ введения константы в регистр подскажите.