Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Cammandos
Заблокирован
#1

[C++] ассемблерный модуль - C++

03.12.2011, 12:34. Просмотров 818. Ответов 1
Метки нет (Все метки)

Привет всем.
Я вот тут пытаюсь ассемблерную вставку в с++ запихнуть...
А не получается. Точнее получается... Но как - то криво.

Пишу просто для пробы:
C++
1
2
3
4
5
...
void printab(int );
int x1;
asm("pushl %0\n\tcall printab \n\tpop %%eax" : : "r" (x1));
...
Пишет мне
undefined reference to printab

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

C++
1
2
3
4
asm ("movl %0,r9\n\tmovl %1,r10\n\tcall _foo"
: /* no outputs */
: "g" (from), "g" (to)
: "r9", "r10");
Но ведь тут тоже _foo неопределена.
Это отсюда:
http://gcc.activeventure.org/Extende...l#Extended-Asm

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

Попытался сделать это подобным образом
C++
1
asm("pushl %0\n\tcall %1 \n\tpop %%eax" : : "r" (x1),"r"(printab));
Пишет предупреждение
indirect call without '*'
Но работает. Но что значит это предупреждение?
Как от него избавиться?
Я просто не понимаю, что имеется ввиду.
Что не есть гут.
Объясните пожалуйста, что это значит, и как от этого избавиться.
И (если они есть) другие способы вызова функций.

Добавлено через 23 секунды
есчо надо и модуль воткунуть как сделать ???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2011, 12:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос [C++] ассемблерный модуль (C++):

Можно ли директивой #pragma получить ассемблерный листинг? - C++
Собственно, сабж. Не могу найти соответствующую функцию у #pragma. Есть она? Ключи компиляции уж больно глубоко зарыты. Компилятор...

Модуль в С++ - C++
Объясните пожалуйста, как создавать модуль(лучше на конкретном примере) в Borland C++ 3.1, а то никак не могу разобраться - нигде внятно не...

Модуль - C++
Разработать и отладить программу состоящую из модуля, который содержит процедуру, которая обнуляет элементы матрицы под главной диагональю...

ln^2 и модуль - C++
Как записать ln2|b-c2|

модуль числа - C++
всем приветик. помогите пожалуйста исправить ошибку. вот условие и пример: #include <iostream.h> #include <stdio.h> #include...

модуль Масивы - C++
помогите написать код программы одномерн. Масив : Дано натуральне число N і одновимірний масив A1, A2, …, AN цілих чисел. Знайти три...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
LosAngeles
Заблокирован
03.12.2011, 14:07 #2
берёшь модуль в котором определенна твоя принттаб и делаешь objdump -t xxx | grep "printab"

Добавлено через 31 минуту
это ответ на первую часть поста, просто если твой линкер вдруг не нашёл твоей принтаб, то не удивляйся, в С++ можно ведь перегрузить функцию. В исходном коде у них могут быть одинаковые имена, но в таблице символов компилятор даст им свои уникальные зависящие от конкретных соглашений в тч abi, обычно они что-нибудь прибавляют к имени и если функция определена в модуле или расшареной библиотеки, ты ты всегда можешь её погрепать по имени
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2011, 14:07
Привет! Вот еще темы с ответами:

модуль от double? - C++
дано три целых числа (integer). найти а. это ошибка в самом условии, или есть функция, находящая модуль дробного числа? abs не...

Модуль числа - C++
Можно ли поставить выражения или числа в модуль в программе? В математике выглядит так: |2-7|=5 Я могу домножить ответ на -1,но меня...

Асемблерный модуль и С++ - C++
Программа должна считать количество слов вправо от самого короткого. ввод строки должен быть реализован в модуле С++, а ее обработка в...

Модуль числа - C++
|1-|x||


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru