Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Paging

419
04 августа 2003 года
Mitja Gladkih
284 / / 19.12.2002
Привет всем!
У кого какие идеи, почему может происходить сбой при установке бита PG в CR0? Таблицы преобразование верны, В CR3 - правильное значение.
В Bochs и на одном компьютере работает, на другом - нет.
MOV EAX,CR0
OR EAX,80000000h
MOV CR0,EAX(уже в З/Р)
После выполнения последней команды и происходит сбой.
3.0K
05 августа 2003 года
Vein
17 / / 02.04.2003
Цитата:
Originally posted by Mitja Gladkih
Привет всем!
У кого какие идеи, почему может происходить сбой при установке бита PG в CR0? Таблицы преобразование верны, В CR3 - правильное значение.
В Bochs и на одном компьютере работает, на другом - нет.
MOV EAX,CR0
OR EAX,80000000h
MOV CR0,EAX(уже в З/Р)
После выполнения последней команды и происходит сбой.


Приветствую.
Попробуй каталог выравнить на границу 1000h
Иногда с этим достаточно интересные вещи происходят..

419
05 августа 2003 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:
Originally posted by Vein

Приветствую.
Попробуй каталог выравнить на границу 1000h
Иногда с этим достаточно интересные вещи происходят..


В смысле, на страницу? Выровнен, по адресу 100000h
...

419
05 августа 2003 года
Mitja Gladkih
284 / / 19.12.2002
Я думал, что, может, после включения страничной адресации процессор из-за неправильной таблицы попадает не туда, но первый элемент таблицы каталогов - 101007h, а в таблице страниц по адресу 1011С0h - 00070007h. Проверьте, - может я ошибся? Код-то находится в памяти начиная с 70000h, т.е. страница 70h. Или я что-то напутал? Но почему тогда на одном компьютере работает, а на другом - нет?
3.0K
05 августа 2003 года
Vein
17 / / 02.04.2003
Проблема еще может быть в обработчике таймера (у меня такое было, я так и не понял, в чем была проблема, просто переписал его под другому)
сократи обработчик до тривиальных
mov al, 20h
out 20h, al
и проверь...
Ты кстати сейчас чего пишешь ?
419
06 августа 2003 года
Mitja Gladkih
284 / / 19.12.2002
Цитата:
Originally posted by Vein
Проблема еще может быть в обработчике таймера (у меня такое было, я так и не понял, в чем была проблема, просто переписал его под другому)
сократи обработчик до тривиальных
mov al, 20h
out 20h, al
и проверь...
Ты кстати сейчас чего пишешь ?


Хм... Что пишу?... Да, в-общем, систему.(здесь, на форуме, 1-2 страницы назад можно найти о ней.)
А обработчик здесь совсем уж ни при чем.
Сбой происходит при отключенных прерываниях, сразу после выполнения mov cr0,eax.
Кстати,еще:
когда переместил каталог на 000000h, стало работать везде, но при каталоге на 100000,200000,300000......700000 работает только в Bochs и на моем лапотопе, а на Cyrix с Award БИОСом только когда таблицы преобразования находятся по адресу 000000h, т.е. только в первом мегабайте. Однако, без страничной трансляции могу писать/читать за пределами первого мегабайта - таблицы-то я формировал и проверял, считывая нужные поля...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог