: . Главная . : . Форум . : . Загрузка . : . Пользователи . : . ЧаВо . : . Документация . :


Операционная система 3OS -> Форумы -> Разное
<< Предыдущая тема | Следующая тема >>   

He-e-e-elp!!!

Перейти к странице Предыдущая -1-2-3-4-5 Следующая
Автор Отправлено
Dreamer
Tuesday 24.02.2004 09:19 Цитата
Зарегистрирован: Friday 20.02.2004 09:36
Местоположение: Mogilev, Belarus
Сообщений - 114
В bochs я и запускал, но толкового он мне не выдал НИЧЕГО!!! Но! После того, как я закомментировал 'mov cr0, eax', и ошибку выдавать перестало, но и программа не работала.
Наверх
AlexeyASugonyaev
Tuesday 24.02.2004 11:26 Цитата
Зарегистрирован: Tuesday 18.11.2003 06:36
Местоположение: Челябинская обл., г.Карталы
Сообщений - 68
Dreamer писал(а): ...
В bochs я и запускал, но толкового он мне не выдал НИЧЕГО!!! Но! После того, как я закомментировал 'mov cr0, eax', и ошибку выдавать перестало, но и программа не работала.

Раскоментируй mov cr0,eax и пришли лог.
Наверх
Dreamer
Tuesday 24.02.2004 12:59 Цитата
Зарегистрирован: Friday 20.02.2004 09:36
Местоположение: Mogilev, Belarus
Сообщений - 114
Нет проблем. Только скажу еще то, что данный код предназначался для boot сектора дискеты. Я же запускал откомпилированный com файл уже из boot программы. Может, в этом и кроется вся ошибка. Однако я не раз видел в исходниках других осей переход в PM из ядра.

log.txt
Наверх
AlexeyASugonyaev
Wednesday 25.02.2004 06:48 Цитата
Зарегистрирован: Tuesday 18.11.2003 06:36
Местоположение: Челябинская обл., г.Карталы
Сообщений - 68
Dreamer писал(а): ...
Нет проблем. Только скажу еще то, что данный код предназначался для boot сектора дискеты. Я же запускал откомпилированный com файл уже из boot программы. Может, в этом и кроется вся ошибка. Однако я не раз видел в исходниках других осей переход в PM из ядра.

log.txt

По всей видимости от адреса загрузки расчитан вход в PM через Межсегментный jmp far sel:offs. Именно offs настроен от начала сегмента sel таким образом что бы попсать на PM код. В этом случае адрес загрузки (тем более что он не очень круглый) играет роль. Понимаешь?
Наверх
Dreamer
Wednesday 25.02.2004 09:36 Цитата
Зарегистрирован: Friday 20.02.2004 09:36
Местоположение: Mogilev, Belarus
Сообщений - 114
Провел маленький эксперимент. Записал com файл, созданный с помощью nasm из этого кода в boot сектор дискеты. Bochs сказал "Not a bootable disk" или что-то в этом роде. Ни в винде, ни в досе дискету не читает.
Затем началось самое интересное. Опять перекомпилировал код, записал как kernel.com, запустил в Bochs. Ну, эффект тот же. Потом заменил строку jmp 0x08: _protected на lloop: jmp lloop. Так же перекомпилировал. Bochs считал этот com файлик и... ошибки не выдал. Нажимаю Power off и Bochs пишет то да се и "Protected mode". Сумашествие да и только.
Наверх
AlexeyASugonyaev
Wednesday 25.02.2004 11:31 Цитата
Зарегистрирован: Tuesday 18.11.2003 06:36
Местоположение: Челябинская обл., г.Карталы
Сообщений - 68
Dreamer писал(а): ...
Провел маленький эксперимент. Записал com файл, созданный с помощью nasm из этого кода в boot сектор дискеты. Bochs сказал "Not a bootable disk" или что-то в этом роде. Ни в винде, ни в досе дискету не читает.

Правильно - ты же не сделал физ.структуру бута, или сделал?

Dreamer писал(а): ...

Затем началось самое интересное. Опять перекомпилировал код, записал как kernel.com, запустил в Bochs. Ну, эффект тот же. Потом заменил строку jmp 0x08: _protected на lloop: jmp lloop. Так же

Тем самым ты остался после перехода в PM с неотчищенными конвеерами. И вошел в цикл.
Dreamer писал(а): ...

перекомпилировал. Bochs считал этот com файлик и... ошибки не выдал. Нажимаю Power off и Bochs пишет то да се и "Protected mode". Сумашествие да и только.

Все правильно, что доказывает наличие непопадания по адресу _protected, так как ты где изменяешь размер файла, а значаит относительное смещение _protected Относительно адреса загрузки. Загружай нормальный пример как делал до этого ставь брек поинт на эту инструкцию, а затем делай шаг, увидишь куда попадешь реально.
Наверх
Dreamer
Wednesday 25.02.2004 13:11 Цитата
Зарегистрирован: Friday 20.02.2004 09:36
Местоположение: Mogilev, Belarus
Сообщений - 114
> Загружай нормальный пример как делал до этого ставь брек поинт на эту инструкцию, а затем делай шаг, увидишь куда попадешь реально.

А как это сделать ??? В bochs по крайней мере я таких фич не видел, а nasm, насколько я знаю, дебаггера не имеет
Наверх
Dreamer
Wednesday 25.02.2004 13:14 Цитата
Зарегистрирован: Friday 20.02.2004 09:36
Местоположение: Mogilev, Belarus
Сообщений - 114
P.S. NASM генерирует файл, размером 512 байт, так что сделать физ. стр-ру бута я, по идее, не могу.
Наверх
Dreamer
Friday 19.03.2004 20:29 Цитата
Зарегистрирован: Friday 20.02.2004 09:36
Местоположение: Mogilev, Belarus
Сообщений - 114
OK. В PM я перешел без проблем. Как теперь обрабатывать прерывания и создать IDTR? Какая должна быть структура у сегментов IDTR и что в них должно быть?
Наверх
AlexeyASugonyaev
Saturday 20.03.2004 08:16 Цитата
Зарегистрирован: Tuesday 18.11.2003 06:36
Местоположение: Челябинская обл., г.Карталы
Сообщений - 68
Dreamer писал(а): ...
OK. В PM я перешел без проблем. Как теперь обрабатывать прерывания и создать IDTR? Какая должна быть структура у сегментов IDTR и что в них должно быть?

А почитать документацию? Вы думаете здесь можно изложить это кратче и понятней? Читайте документацию
Наверх
Перейти к странице Предыдущая -1-2-3-4-5 Следующая

Модераторы: Roman I Khimov

Переход:     Наверх