Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Обработчик прерываний в Protected Mode

9.0K
18 ноября 2006 года
ZhekkA
36 / / 28.10.2005
У меня проблемка, может кто знает, как лечить: захожу в защищенный режим (тоже пытаюся написать свою ОС), включаю прерывания, и компьютер перезагружается. Что делать? Может, кто чего посоветует? Загрузчик на АСМе, ядро на Си.
6.8K
18 ноября 2006 года
legos
33 / / 13.11.2004
Хм.. Искать баги? Таки сравнить с исходниками других людей?

Может, посмотреть туториалы?) (это типо реклама)
261
18 ноября 2006 года
ahilles
1.5K / / 03.11.2005
ты думаешь в защищённом режиме всё так просто как в реальном........
не тут то было ..............
читай литературу так же посоветую сайт sasm.narod.ru
9.0K
19 ноября 2006 года
ZhekkA
36 / / 28.10.2005
sasm.narod.ru - хорошая вещь, но обработчик прерываний я на Си пишу. :^(
Может, кто посоветует литературу (электронную) по этоиу поводу? Буду очень благодарен.
1.9K
19 ноября 2006 года
lodstosw
9 / / 14.11.2006
[QUOTE=ZhekkA]У меня проблемка, может кто знает, как лечить: захожу в защищенный режим (тоже пытаюся написать свою ОС), включаю прерывания, и компьютер перезагружается. Что делать? Может, кто чего посоветует? Загрузчик на АСМе, ядро на Си.[/QUOTE]

Вначале нужно загрузить IDT, таблицу прерываний, желательно бы первые 32 + 2 (для таймера и клавиатуры). Перед этим нужно сделать редирект, чтобы прежние int 9 и int 8 не генерились, как в real mode. В защ.режиме другой способ обработки прерывании (там 32 первых - это исключения), их назначение другое. Чтобы загрузить таблицу прерывании, нужно составить таблицу шлюзов прерываний, а потом выполнить инструкцию lidt, которая загружает 6 байт: 2 байта - лимит таблицы (8байт*34прерываний-1), а другие 4 байта - это физический адрес таблицы прерываний.

После того, как ты переназначил все прерывания, в шлюзах необходимо сделать "заглушки", чтобы компьютер случайно не перезагружался при каждом нажатий клавиши.

А вообще, это слишком объемная тема для разговора. Лучше, как посоветовали люди, зайди на sasm.ru. Я сам оттуда все узнал.
261
19 ноября 2006 года
ahilles
1.5K / / 03.11.2005
[QUOTE=ZhekkA] но обработчик прерываний я на Си пишу. :^(
[/QUOTE]
мне кажется проще будет написать обработчик прерываний на асме так проще и геммороя меньше
349
19 ноября 2006 года
Phantom-84
656 / / 27.10.2005
Можно даже сказать, что обязательно первые 32. Некоторые выриации процессоров могут и ресетом ответить на несоблюдение этого правила...

Если пишешь обработчик на Си, то для гарантии корректности кода без декомпиляции не обойтись; также не следует внутри обработчика использовать какие-либо функции ввода-вывода... По-моему лучше сначала написать на asm'е, а потом уже переписать на Си... Некоторые Си-компиляторы по умолчанию формируют код сильно привязанный к программной платформе (т.е. конкретной ОС)... Такой компилятор лучше вообще не использовать при написании обработчика, ну или по крайней мере изменить опции компиляции...
261
21 ноября 2006 года
ahilles
1.5K / / 03.11.2005
мне кажется вообще не надо использовать другие языки кроме ASMа для написания ОС
334
22 ноября 2006 года
HexEdit
809 / / 27.07.2006
Цитата: ahilles
мне кажется вообще не надо использовать другие языки кроме ASMа для написания ОС



Полностью согласен, я даже считаю что вообще - тока асм.

9.0K
22 ноября 2006 года
ZhekkA
36 / / 28.10.2005
Цитата: HexEdit
Полностью согласен, я даже считаю что вообще - тока асм.



Ну... Кому как... По мне - так лучше Си. И ошибок меньше допустить можно, и проще их искать, и вообще легче.

261
22 ноября 2006 года
ahilles
1.5K / / 03.11.2005
ты так говоришь потому что асм наверно не знаешь и плохо его знаешь
9.0K
24 ноября 2006 года
ZhekkA
36 / / 28.10.2005
Так и есть...
261
25 ноября 2006 года
ahilles
1.5K / / 03.11.2005
Тогда сначала прошарься в нём потом только берись за написание такой вещи как ОС
сначала хорошенько прочитай все туториалы по защищённому режиму
и обработчик прерываний ОБЯЗАТЕЛЬНО пиши на асме!!!!!!!!!!!!
на сайте sasm.narod.ru есть примеры написания обработчиков прерываний ......
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог