Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Visual C++ with Assembler 
:(
    Опции темы
d@nik
Дата 16.10.2007, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.10.2007

Репутация: нет
Всего: нет



Всем доброго времени суток.
Подскажите кто знает. Столкнулся с такой проблемой:
вызываю функцию на С++, передавая параметры, объявленные в С++ модуле. Делаю это так:
_asm{
         push I2
         push I1
         call Sub2ints
}
затем сама функция:
int Ccall_from_inlineasmDlg::Sub2ints(int i1, int i2)
{
    _asm{
        xor    EAX, EAX
        mov EAX, i1
        sub EAX, i2
    }
    //return 0;
}
но под отладчиком параметры i1, i2 в любом случае равны 132 и 136, вне зависимости от того, что я передал перед вызовом функции. Скажите, что я делаю не так. Пожалуйста. 

PM MAIL   Вверх
Moonlit_angel
Дата 16.10.2007, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 14.9.2007
Где: Вильнюс, Литва

Репутация: нет
Всего: нет



попробуй перед подачей новых параметров вычистить буфер. После подачи первых параметров, что дают результат 132 и 136, переменные i1, i2  не получают новых данных, т.е. в адресе остаются первичные данные.

Это сообщение отредактировал(а) Moonlit_angel - 16.10.2007, 15:57
PM MAIL Skype   Вверх
dumb
Дата 16.10.2007, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: нет
Всего: 158



для начала, нужно четко обозначить модель вызова для вызываемой функции и следовать ей при "извращениях" из ассемблера.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0683 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.