1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

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

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

Тема в разделе "С и С++", создана пользователем 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:
     
Загрузка...
Статус темы:
Закрыта.

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