Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Прерывания и исключения (protect mode) / 11 сообщений из 11, страница 1 из 1
30.05.2008, 17:05
    #35346339
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прерывания и исключения (protect mode)
Добрый день!
Старался понять сам, но никак не получается )) Дело в том, что мне не понятно как же работать с прерываниями БИОС в защищённом режиме, ведь первые 19 дескрипторов (вообще 31, если учитываать резерв) в IDT указывают на обработчики исключений (и соостветственно эти обработчики должны быть расчитаны именно на исключения)... Но вот например надо мне сменить видеорежим, что же тогда делать? :)
Правильно ли я понимаю, что тогда в таблицах дескрипторов надо переопределять обработчики этих прерываний по другим номерам (то есть обработчик первого прерывания станет обработчиком 32, второго - станет обработчиком 33 и т.д.)? Или так не получиться, и надо переписывать все прерывания самому?
И очень интересно, как это сделали разработчики Виндовса?
Большое спасибо
...
Рейтинг: 0 / 0
30.05.2008, 17:41
    #35346443
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прерывания и исключения (protect mode)
P.S. Понимаю, что вопрос глупый, но просто я с pm совсем не знаком... Потому интересно как это всё умные люди делают :)
...
Рейтинг: 0 / 0
30.05.2008, 18:44
    #35346564
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прерывания и исключения (protect mode)
ПрограмёрИ очень интересно, как это сделали разработчики Виндовса?они написали свои драйвера и не пользуются BIOS'ом, а если пользуются - переключают режим.

вызывать прерывания можно не только через инструкцию int xx, можно её проэмулировать через две: pushf; call far [int_funcs][xx];
...
Рейтинг: 0 / 0
30.05.2008, 22:10
    #35346789
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прерывания и исключения (protect mode)
ага... спасибо )) То есть данную проблему решают драйвера, в которых они всё переопределяют сами и создают свои, специальные для своей операционной системы, функции...
))) Значит пора бы мне в драйвера немного полезть
...
Рейтинг: 0 / 0
30.05.2008, 22:33
    #35346799
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прерывания и исключения (protect mode)
Кстати, подскажите пожалуйста какой-нить ресурс, где можно было бы почитать про то, как пишуться драйвера, как это всё работает и т.д.

Спасибо
...
Рейтинг: 0 / 0
31.05.2008, 13:25
    #35347074
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прерывания и исключения (protect mode)
Всё... нашёл ))) вот по-моему неплохая подборка статей...
Здесь есть много чего для того, кто хочет стать системным программистом...
...
Рейтинг: 0 / 0
02.06.2008, 08:44
    #35348173
Mastack1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прерывания и исключения (protect mode)
Жесть.

2 Програмёр:
Вы не поверите, но контроллёр прерываний тоже ПРОГРАММИРУЕТСЯ!!! На любой номер прерывания (почти).

PS
Бросили бы вы это безнадёжное (для вас) дело, пока не поздно.
...
Рейтинг: 0 / 0
02.06.2008, 11:16
    #35348491
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прерывания и исключения (protect mode)
ПрограмёрВсё... нашёл ))) вот по-моему неплохая подборка статей...
Здесь есть много чего для того, кто хочет стать системным программистом...
Статья, написаная блондинкой в журнале развекательного содержания - не слишком хороший старт для системного программиста.
...
Рейтинг: 0 / 0
02.06.2008, 11:43
    #35348561
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прерывания и исключения (protect mode)
Mastack12 Програмёр:
Вы не поверите, но контроллёр прерываний тоже ПРОГРАММИРУЕТСЯ!!! На любой номер прерывания (почти).насколько я понял - автор спрашивал про программные прерывания, которые генерируются командой int например int 10h, а не про аппаратные, которые приходят с контроллера прерываний. ему было непонятно, что делать если код вызывает функции биоса через например ту же int 10h, как переписать этот код, что бы он работал в защищённом режиме, так как в защищённом режиме этот int 10h попадает на обработчик "Floating point error"
...
Рейтинг: 0 / 0
02.06.2008, 14:15
    #35349035
Gatman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прерывания и исключения (protect mode)
ПрограмёрКстати, подскажите пожалуйста какой-нить ресурс, где можно было бы почитать про то, как пишуться драйвера, как это всё работает и т.д.
тынц смотри раздел защищённый режим
...
Рейтинг: 0 / 0
04.06.2008, 01:26
    #35352830
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прерывания и исключения (protect mode)
mayton ПрограмёрВсё... нашёл ))) вот по-моему неплохая подборка статей...
Здесь есть много чего для того, кто хочет стать системным программистом...
Статья, написаная блондинкой в журнале развекательного содержания - не слишком хороший старт для системного программиста.
Спасибо, буду знать ;) Хотя по-моему даже и это почитать полезно :) Мне всё-ровно предстоит прочитать ещё сотни, а то и тысячи статей.

Ёшнасколько я понял - автор спрашивал про программные прерывания, которые генерируются командой int например int 10h, а не про аппаратные, которые приходят с контроллера прерываний. ему было непонятно, что делать если код вызывает функции биоса через например ту же int 10h, как переписать этот код, что бы он работал в защищённом режиме, так как в защищённом режиме этот int 10h попадает на обработчик "Floating point error"
Да... Именно это я и имел ввиду :)

Gatman ПрограмёрКстати, подскажите пожалуйста какой-нить ресурс, где можно было бы почитать про то, как пишуться драйвера, как это всё работает и т.д.
тынц смотри раздел защищённый режим
Спасибо )) Очень познавательно...

Всем БОЛЬШОЕ спасибо за советы :)

P.S. Полезу я в сторону работы с портами )) Как вы считаете, стоит ли это делать, или же это глупая затея?
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Прерывания и исключения (protect mode) / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]