1. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Первый товар уже в продаже: Консультация на тему ИБ от Ondrik8

    Скрыть объявление
  2. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Второй товар маркетплейса: Надёжная обфускация вашей программы от PingVinich

    Скрыть объявление

Asm вставка в с++.gnu компилятор

Тема в разделе "C и С++ FAQ", создана пользователем TnedutS, 9 авг 2005.

Статус темы:
Закрыта.
  1. TnedutS

    TnedutS Гость

    Репутация:
    0
    Здравствуйте!
    Достаточно уже долго бьюсь над проблемой, поэтому решил обратиться сюда.
    Я пытаюсь применить ассемблерную вставку в с++ ... До этого опыта с этим не было.
    Надо по заданию просто.
    Применить то я применил... Но как - то криво.
    Пишу просто для пробы:
    ...
    void printab(int );
    ...
    int x1 = 1;
    asm("pushl %0\n\tcall printab \n\tpop %%eax" : : "r" (x1));
    ...
    Пишет мне
    undefined reference to printab. При том, что саму функцию я как раз объявил.


    Смотрел в инете. Нашел, например, это:

    asm ("movl %0,r9\n\tmovl %1,r10\n\tcall _foo"
    : /* no outputs */
    : "g" (from), "g" (to)
    : "r9", "r10");

    Но ведь тут тоже _foo неопределена.
    Это отсюда:
    http://gcc.activeventure.org/Extended-Asm.html#Extended-Asm

    Смотрел и др. сайты. Примеры одни и те же.

    Попытался сделать это подобным образом
    asm("pushl %0\n\tcall %1 \n\tpop %%eax" : : "r" (x1),"r"(printab));

    Пишет предупреждение
    indirect call without '*'
    Но работает. Но что значит это предупреждение?
    Как от него избавиться?
    Объясните пожалуйста, что это значит, и как от этого избавиться.
    И (если они есть) другие способы вызова функций.
     
  2. TnedutS

    TnedutS Гость

    Репутация:
    0
    Я понимаю, что вопрос чайницкий, но в других форумах мне ничем не помогли. А в интернете я пока ничего не нашел.
     
  3. TnedutS

    TnedutS Гость

    Репутация:
    0
    Все. Вопрос снят:blink:
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей