> man operating_systems
Переход на страницу  [1] 2 3 4 5
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
nnivanov
Пятница 08.04.2005 12:57

ID пользователя #253
Зарегистрирован: Вторник 29.03.2005 01:18
Местонахождение: Russia, Velikiy Novgorod
Сообщений: 123
Подскажите пожалуйста, где может скрываться ошибка. Все под десять раз проверял. Эта часть кода у меня всегда работалв, а сейчас делает reboot.

<div class='indent'>.byte 0x66
.byte 0xea
.long 0x8000
.word 0x08

/* Простейшая GDT: */
gdt_table: /* GDT */
.word 0x0000, 0x0000, 0x0000, 0x0000 /* Null descriptor */
.word 0xffff, 0x0000, 0x9a00, 0x00cf /* Code segment descriptor (32) */
.word 0xffff, 0x0000, 0x9200, 0x00cf /* Data segment descriptor (32)*/
</div>Надо сделать дальний прыжок на 8000

Заранее благодарен.

- Зачем мотоциклу реактивный двигатель?
- Да потому что нам так нравится!
Discovery Channel
Наверх
Сайт
Dron
Пятница 08.04.2005 13:27


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Для выявления такого рода ошибок - ставь эксепшины и смотри куда падает...

Это ты переключаешься в протектед?
надеюсь ты не врубил еще страничную организацию?
проблемы могут быть с ней...

Ты вспомни что ты менял с тех пор как все работало.
[ Редактирование пятница 08.04.2005 14:05 ]

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
nnivanov
Пятница 08.04.2005 14:02

ID пользователя #253
Зарегистрирован: Вторник 29.03.2005 01:18
Местонахождение: Russia, Velikiy Novgorod
Сообщений: 123
Это часть кода. Я уже в PM с сегментной адресацией. Падает при длинном прыжке. Понимаю, конечно, что ерунда какая-нибудь окажется, просто уже сутки не могу найти эту ерунду. Такое обычно происходит при попытке прыгнуть в несуществующий сегмент или в сегмент данных. Но все проверял. Может быть еще из-за выхода за границы лимита, но последний fffff, а база в нуле. Совсем потерялся.

- Зачем мотоциклу реактивный двигатель?
- Да потому что нам так нравится!
Discovery Channel
Наверх
Сайт
nnivanov
Пятница 08.04.2005 14:03

ID пользователя #253
Зарегистрирован: Вторник 29.03.2005 01:18
Местонахождение: Russia, Velikiy Novgorod
Сообщений: 123
В догонку: и гранулярность единица.

- Зачем мотоциклу реактивный двигатель?
- Да потому что нам так нравится!
Discovery Channel
Наверх
Сайт
Dron
Пятница 08.04.2005 16:32


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Если ты уже в PM, то тогда мне не понятно зачем ты поставил 0x66...

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
nnivanov
Пятница 08.04.2005 16:56

ID пользователя #253
Зарегистрирован: Вторник 29.03.2005 01:18
Местонахождение: Russia, Velikiy Novgorod
Сообщений: 123
Чтобы перейти в режим 32-битных команд, поскольку сегмент кода, на который указывает дескриптор имеет слишком большой предел.

- Зачем мотоциклу реактивный двигатель?
- Да потому что нам так нравится!
Discovery Channel
Наверх
Сайт
Dreamer
Пятница 08.04.2005 17:37

ID пользователя #9
Зарегистрирован: Воскресенье 04.07.2004 14:01
Сообщений: 235
У меня сейчас такая же трабла... С воскресения сижу, никак выловить не могу: Bochs показывает то "плохой сегмент", то GDTR не такая. А вообще, если отлаживать такие штуки - Bochs forever. И, что характерно, jmp проходит нормально, но при mov es, 0x10 мне выдает ошибку, что сегмент не предусматривает запись

Жизнь на Линуксе есть!
Наверх
Dron
Пятница 08.04.2005 17:39


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Стой.. в каком режиме ты находишься?
если ты находишься в защищенном режиме надо смотреть какой сегмент у тебя был. 16-битный PM? нахрена было вообще его включать?

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
Dreamer
Пятница 08.04.2005 17:49

ID пользователя #9
Зарегистрирован: Воскресенье 04.07.2004 14:01
Сообщений: 235
В реальном, конечно. Кстати, если после перехода в PM, не определяя прерываний, зациклить систему через jmp $, то ошибка ведь не должна выдаваться?

Жизнь на Линуксе есть!
Наверх
Dron
Пятница 08.04.2005 17:49


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Кстати если кто не знает... в Bochs есть замечательные команды info gdt, info idt
просто он плохо документирован

Одну из двух вечных российских проблем можно, в принципе, решить с помощью асфальтоукладчиков и катков. А вот с дорогами, конечно, будет труднее...

Андрей Валяев
Наверх
Сайт
Переход на страницу  [1] 2 3 4 5  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.