6.47.4 Управление именами, используемыми в коде ассемблера ¶
Вы можете указать имя, которое будет использоваться в коде ассемблера для функции C или переменной, написав ключевое слово asm (или __asm__) после описателя. Вам необходимо убедиться, что выбранные вами имена ассемблера не конфликтуют с другими символами ассемблера или не ссылаются на регистры.
Имена ассемблера для данных: ¶
В этом примере показано, как указать имя ассемблера для данных:
int foo asm ("myfoo") = 2;
Это указывает, что имя, которое должно использоваться для переменной foo в коде ассемблера, должно быть ‘myfoo’, а не обычное ‘_foo’.
В системах, где перед именем переменной C обычно добавляется символ подчеркивания, эта функция позволяет определять имена для компоновщика, которые не начинаются с подчеркивания.
GCC не поддерживает использование этой функции с локальной переменной, которая не является статической, так как такие переменные не имеют имен ассемблера. Если вы пытаетесь поместить переменную в определенный регистр, см. Переменные в указанных регистрах.
Имена ассемблера для функций: ¶
Чтобы указать имя ассемблера для функций, напишите объявление функции перед ее определением и поместите туда asm, как в этом примере:
int func (int x, int y) asm ("MYFUNC");
int func (int x, int y)
{
/* … */
Это указывает, что имя, которое должно использоваться для функции func в коде ассемблера, должно быть MYFUNC.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-11.4.0/gcc/Asm-Labels.html