ты же lgdt не выполнил поэтому gdtr содержит адрес GDT Windows, а так как по селектору 16 не обязательно будет находится валидный дескриптор...
с точки зрения человека - сразу а вот с точки зрения CPU - где-то после in al, 70h and al, 7Fh out 70h, al ; вот этой инструкции...
извини, не сдержался но и ты пойми, это же все-таки не первый мой пост был
да все там однозначно протри глаза споришь ни о чем ты
Medstrax слушай, почитай внимательно псевдокод там четко написано, когда может генерироваться #GP по селектору по поводу места, где описаны...
почитай лучше часть 2B интеловского мануала (а именно псевдокод выполнения RET) хотя ладно, вот он так что фигню порешь ты выполнение обычного...
господа, тут проблема в возможном несоответствии селекторов ядра и дескрипторов в новой GDT и совсем необязательно этим дескритором будет...
Medstrax лимит стека проверяется исходя из соответствующего значения дескриптора, который закэширован в скрытой части сегментного регистра SS...
ты не прав, старые значения селектора и дескриптора сегмента стека остаются закэшированными в SS (10 байт: 2 байта - селектор, 8 байт -...
с чего ты взял, что стека нет? каким образом по-твоему проходят вызовы disable_interrupts и initialize_gdt?
я за тебя рад конечно, но это все равно не решение решение - это когда работает без "если" имхо, конечно ОК можно проверить потом отпишусь
блин... ну нет у тебя соответсвия между селекторами и дескрипторами GDT ты изменил, но ядро использует селекторы дескрипторов, которые...
извини меня, а как это все в ОЗУ попадает? ) или это какое-то гипотетическое задание? Medstrax слишком много условностей нельзя однозначно...
кстати, обязательно ли нужно, чтобы в RM IDTR.BASE был равен 0?
ну и bound (#OF)
естественно не одно и то же INIT# не ведет к сбросу кэша (1-го и 2-го уровней), реинициализации MSR регистров, FPU/MMX/SSE регистров, MTRR...
KonstantinBart 1. Считываешь первый сектор раздела, где установлен загрузчик (lilo или grub) 2. Записываешь его по физическому адресу 0x7C00 3....
n0name у меня пример без привязки к конкретной ОС естественно в конкретной ОС нужно уточнять адрес
не считывает все нужные данные зашиты в код boot-сектора (по крайней мере в GRUB) не понимаю, зачем что-то менять? берешь boot-сектор GRUB (или...
господа, а почему обязательно Windows? чем Linux хуже? ;) FPU регистры восстанавливать в большинстве случаев не надо обычно хватает CR0.TS = 1...
Имена участников (разделяйте запятой).