|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.05.2010, 10:22 | #1 |
Пользователь
Регистрация: 04.05.2010
Сообщений: 19
|
Как вызвать функцию в ассемблерной вставке, зная адрес
Есть функция на C++, скажем
double имя_метода (double a, double b, double (*pf)(double)) { __asm{ ... } } Как во вставке обратися к функции на которую указывает pf? P.S. Если у нас есть простая функция, к примеру, void example (void), то понятно ... call dword ptr emaple ... а вот как с указателем pf?? |
04.05.2010, 10:44 | #2 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
mov eax, pf
call eax |
04.05.2010, 11:30 | #3 |
Пользователь
Регистрация: 04.05.2010
Сообщений: 19
|
Попробовал, у меня pf был синус
Вот функция, где x это точка в котороый нужно вычислить синус void c (double (*pf)(double), float x) { __asm{ mov eax, x push eax mov eax, pf call eax add esp,4 } cout<< (*pf)(x); } В результате после вызова функции в eax у меня значение 00000CFE , при любых х, а не то значение которое должно быть; а cout<< (*pf)(x); вычисляет всё правильно Последний раз редактировалось iceman2112; 04.05.2010 в 11:39. |
04.05.2010, 13:38 | #4 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
Код:
результат из синуса возвращается не в ЕAX!!!!, а в стеке сопроцессора!!! |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как вызвать функцию? | blackstersl | Общие вопросы Delphi | 10 | 07.06.2009 19:22 |
Вызвать адрес памяти как функцию | XAOC-forever | Общие вопросы Delphi | 18 | 07.03.2009 20:32 |
как узнать ip адрес зная mac адрес | Roman | Работа с сетью в Delphi | 9 | 25.06.2007 12:39 |
как вызвать в Dll по указателю функцию, которая определена в главном потоке? | SaintRain | Общие вопросы Delphi | 1 | 25.11.2006 08:27 |
как вызвать из Dll функцию, которая определена в главном потоке? | SaintRain | Win Api | 1 | 23.11.2006 20:08 |