![]() |
|
|
![]()
|
|
| chaos |
|
||||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
Здрасте!!!!
Возникла задача заставить кусок кода
выполняться. если собирать обычное приложение
то оно вылетает, попробовал собрать типо драйвер
- система перегружается подскажите что не так. Заранее благодарен! Это сообщение отредактировал(а) chaos - 27.8.2007, 12:09 |
||||||
|
|||||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
chaos,
вообще говоря 15h - это прерывание BIOS в DriverEntry инструкция
привела к попытке вызвать обработчик, указанный в дескрипторе IDT под номером 15h соответствующий дескриптор оказался невалидным (P = 0), возникло исключение #NP, что привело к BSOD / перезагрузке в _tmain эта инструкция вызвала #NP или #GP, что привело к краху приложения что должна делать int 15h? может стоит использовать Turbo C++? Это сообщение отредактировал(а) MAKCim - 27.8.2007, 13:01 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| chaos |
|
||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
Добавлено через 1 минуту и 31 секунду вообще задача обновлять значение вачдога, те необходимо заставить работать код
|
||||
|
|||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
MAKCim, собрал приложение
собрал в TCC. запустил и ничего MAKCim что думаешь по этому поводу? |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 2 Всего: 158 |
chaos, а инфу по int 15/6f02 ты взял из документации на свое железо или как?
|
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
Windows эмулирует в режиме V86 16-ти битный код (который ты получил при использовании TCC) той функциональности, которую реализует int 15h ты будучи в Windows (драйвер или пользовательский режим (обычный 32-ух битный код или V86)) не получишь тут или DOS нужен, или что-то, что может вызывать напрямую сервисы BIOS а кстати, можешь попробовать установить свой обработчик на SMI (System Management Interrupt) и сгенерировать вручную SMI, в обработчике вызвать int 15h (все это, естественно, из драйвера нужно делать) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
все верно |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
а может можно где пример посмотреть?
|
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
chaos,
вопрос ко мне? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
MAKCim, да
|
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
chaos,
если у тебя DOS и программа под DOS, то все понятно: делаешь
и получаешь нужный результат если Windows и защищенный режим то пишешь драйвер при этом нужно обязательно знать, где располагается аппаратно поддерживаемая чипсетом область SMRAM (обычно она расположена в диапозоне VGA (0xA0000-0xBFFFF)) далее активируешь доступ к SMRAM не в SMM (обычно через конфигурационное пространство PCI) отображаешь 128КБ на виртуальное адресное пространство ядра и по адресу SMBASE + 0x8000 (SMBASE - определенный виртуальный адрес SMRAM) записываешь свой обработчик (16-ти битный код) на всякий случай проделываешь эту же операцию, но с дефолтным SMBASE (физический адрес = 0x30000 (его тоже надо отобразить на виртуальное адресное пространство)) (на случай, если BIOS не изменил его в процессе инициализации) далее генерируешь SMI (генерация возможна только через IPI) управление перейдет на твой обработчик, который будет выполняться в Unreal Mode далее изменяешь IDTR и вызываешь int 15h -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
чото не нашел в книге не про SMI не про IPI чо эта такое
с этим разобрался. не понятно как далее "генерируешь SMI (генерация возможна только через IPI)" те как это делается вообще Это сообщение отредактировал(а) chaos - 18.9.2007, 11:13 |
|||
|
||||
| MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
вообще просто из драйвера
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
![]()
|
| Правила форума "Asm для Windows/DOS" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для Windows/Dos | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |