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.
Далее: Явные регистровые переменные, Предыдущее: Ограничения, Вверх: Использование языка ассемблера с C [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.5.0/gcc/Asm-Labels.html