Объявление

#1 28-11-2005 17:31:24

Переполнение линейного адреса

Привет!

Переполнение линейного адреса происходит при обращении к памяти, если база сегмента + смещение получается больше 4GB. Можно устроить такое либо в защищённом режиме, либо в реальном, сохранив сегментный регистр из защищённого.

Что происходит по факту:
- в реальном - перезагрузка
- в защищённом - никаких проблем. Наверное, даже работает, т.е. действительно читает/записывает.

Вопрос, почему такая разница, и что при этом должно происходить с точки зрения теории.

 

#2 20-02-2006 16:28:02

Re: Переполнение линейного адреса

в теории 4-байтовое значение не может превысить 4-гигбайтный диапазон. То есть все, что левее 32-х битов, порсто отбрасывается

 

#3 20-02-2006 16:51:29

Re: Переполнение линейного адреса

sergh
Мне не удавалось задать базу в 4Гб для реального режима. В принципе можно сделать лимит в 4Гб, и попробывать прочитать 0FFFFh:0FFFFFFFF, по идее адрес должен свернуться, и получится обращение к ячейке памяти 0FFFF:0 - 1, или линейный = 0xFFFEF.


Плавайте поездами Аэрофлота!

 

Board footer

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson