Chingachguk Все верно, по крайней мере один TSS в системе должен быть -- он содержит длинные указатели стека используемые при смене уровней...
Все верно, isr обозначает in-service routine, т.е. номер линии, чей обработчик в данный момент выполняется. А 0x20 действительно значение...
Не совсем так. Просто сегментация в чистом виде сейчас не используется, она используется со страничной организацией памяти, а страничная...
Добавлю, что это прерывание используется как оповещение о том, что произошел аппаратный сбой. Основная особенность прерывания -- процессор, при...
1. Это управление выравниванием для структур, объединений и членов классов. Подробнее можно почитать тут. Для приведенного примера это значит:...
Добавлю еще 'far ret' :)
rei3er Он не возможен даже через шлюз вызова -- шлюз вызова может лишь повышать привилегии, но не понижать их. ORANGIX Дополню rei3erа --...
Думаю, вирт. машина будет самым удобным вариантом. Для отладки лучше всего подходит Bochs, для тестирования -- VMWare (хотя и Bochs тоже подойдет).
rei3er Причина исключения найдена? Интересно все-таки, в чем дело.
Тоже еще не смотрел внимательно, но автору топика посоветую с помощью 'jmp $' найти инструкцию, которая вызывает перезагрузку. Так будет проще...
<offtopic>Разве у Григорьева эта информация описана? У него, насколько я помню есть время смены уровня привелегий через call gate, но не время...
Вообще, лучше всего для таких целей подходит Bochs -- у него и отладчик есть и лог достаточно подробный. А VMWare в этом вопросе верить нельзя --...
Не совсем понял, зачем в 'lgdt [gdtr - OFFSET]' отнимается OFFSET -- ведь страничное преобразование еще не включено...
Я, возможно, название путаю, то ли BootEasy то ли EasyBoot... В общем, выкладываю исходники: Похоже аттачи не работают. Положил файл здесь. А...
Тут я уже советовал, что можно взять в качестве примера.
Добавлю еще, что при использовании ebp сегментным регистром по-умолчанию будет ss, т.е. сегмент стека. Интересно, а сама идея стековых кадров...
В качестве примера можно взять BootEasy -- загрузчик для MBR от BSD. Он не очень сложный, правда, признак конца строки там странный (за то...
Прошу прощения, был невнимателен.
Не обязательно. Если бит D/B в дескрпиторе кода сброшен в 0, то префикс замены размера адреса и замены размера операнда наоборот "увеличат" размер...
Насколько я помню, первая инструкция начинает выполняться по адресу 0xFFFFFFF0. Т.е. адрес используется в форме 0xFFFF:0000, но при подаче его на...
Имена участников (разделяйте запятой).