6.11.5 Управление именами, используемыми в ассемблерном коде
Вы можете указать имя, которое будет использоваться в ассемблерном коде для функции или переменной 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-15.3.0/gcc/Asm-Labels.html