Spec-Zone.ru › GCC 15

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API