![]() |
|
![]() ![]() ![]() |
|
somwan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 17.11.2007 Репутация: нет Всего: нет |
Всем привет!
Нужна помощь профессионалов. Ассемблер не моя язык, мой С++, ассемблером не занимался, но пришлось включить в проект С++ вставку, написанную на ассемблере. Ниже показана сама вставка.
Раньше, когда модель памяти основног опроекта была COMPACT, всё прекрасно работало. Но с переходам к HUGE отказалось работать. Ясно что проблема в коде вставки т.к. однако где именно непонятно. Прошу помоч дельным советом, что поправить чтобы заработало. Работаю в Borland C++ 3.1. Добавлено через 6 минут и 39 секунд Да вот ещё что уже удалось понять. В показанном коде две процедуры 1 - ipxspx_entry , 2 - ipx_init. Проблема со второй. она получает точку входа в драйвер IPX., которую пишет в переменную ipxspx_drv_entry. При модели COMPACT (когда всё работало) значение данной переменой после работы функции было 4026537600, а после перехода на HUGE стало равно 0!. А т.к. нет точки входа, то при работе первой процедуры на вызове драйвера IPX всё виснит. Да и во второй процедуре в конце стоит ret, с ним вообще виснет, при замене на retf работает, но точка входа равна 0. Вставка сия взята из книги А.Фролова "библиотека системного программиста", и предназначена для инициализации и вызова драйвера IPX для работы с сетью. |
|||
|
||||
somwan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 17.11.2007 Репутация: нет Всего: нет |
Как я и подозревал дело было в полторах закорючках!
Нашол книгу "исскуство программирования на ассемблере" в которой нашёл тему о использовании ассемблера совместно с С++. Показанный в первом сообщении код модифицировал следующим образом:
Теперь работает в модели HUGE. Если хочешь сделать что-либо, сделай это сам! Может кому окажется полезно. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm для начинающих" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для начинающих | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |