Обработчик прерываний в Protected Mode
У меня проблемка, может кто знает, как лечить: захожу в защищенный режим (тоже пытаюся написать свою ОС), включаю прерывания, и компьютер перезагружается. Что делать? Может, кто чего посоветует? Загрузчик на АСМе, ядро на Си.
Может, посмотреть туториалы?) (это типо реклама)
не тут то было ..............
читай литературу так же посоветую сайт sasm.narod.ru
Может, кто посоветует литературу (электронную) по этоиу поводу? Буду очень благодарен.
Вначале нужно загрузить IDT, таблицу прерываний, желательно бы первые 32 + 2 (для таймера и клавиатуры). Перед этим нужно сделать редирект, чтобы прежние int 9 и int 8 не генерились, как в real mode. В защ.режиме другой способ обработки прерывании (там 32 первых - это исключения), их назначение другое. Чтобы загрузить таблицу прерывании, нужно составить таблицу шлюзов прерываний, а потом выполнить инструкцию lidt, которая загружает 6 байт: 2 байта - лимит таблицы (8байт*34прерываний-1), а другие 4 байта - это физический адрес таблицы прерываний.
После того, как ты переназначил все прерывания, в шлюзах необходимо сделать "заглушки", чтобы компьютер случайно не перезагружался при каждом нажатий клавиши.
А вообще, это слишком объемная тема для разговора. Лучше, как посоветовали люди, зайди на sasm.ru. Я сам оттуда все узнал.
[/QUOTE]
мне кажется проще будет написать обработчик прерываний на асме так проще и геммороя меньше
Если пишешь обработчик на Си, то для гарантии корректности кода без декомпиляции не обойтись; также не следует внутри обработчика использовать какие-либо функции ввода-вывода... По-моему лучше сначала написать на asm'е, а потом уже переписать на Си... Некоторые Си-компиляторы по умолчанию формируют код сильно привязанный к программной платформе (т.е. конкретной ОС)... Такой компилятор лучше вообще не использовать при написании обработчика, ну или по крайней мере изменить опции компиляции...
мне кажется вообще не надо использовать другие языки кроме ASMа для написания ОС
Цитата: ahilles
мне кажется вообще не надо использовать другие языки кроме ASMа для написания ОС
Полностью согласен, я даже считаю что вообще - тока асм.
Цитата: HexEdit
Полностью согласен, я даже считаю что вообще - тока асм.
Ну... Кому как... По мне - так лучше Си. И ошибок меньше допустить можно, и проще их искать, и вообще легче.
ты так говоришь потому что асм наверно не знаешь и плохо его знаешь
Так и есть...
сначала хорошенько прочитай все туториалы по защищённому режиму
и обработчик прерываний ОБЯЗАТЕЛЬНО пиши на асме!!!!!!!!!!!!
на сайте sasm.narod.ru есть примеры написания обработчиков прерываний ......