Spec-Zone.ru › GCC 10

Next: Переменные в указанных регистрах, Previous: Ограничения для операндов asm, Up: Как использовать язык ассемблера в коде C [Оглавление][Индекс]

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.

Next: Переменные в указанных регистрах, Previous: Ограничения для операндов asm, Up: Как использовать язык ассемблера в коде C [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.5.0/gcc/Asm-Labels.html

Spec-Zone.ru

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