Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Может еще раз... 13.02.02 13:17 Число просмотров: 655
Автор: PS <PS> Статус: Elderman
|
Вообще то я считал, что логический это сегмент:смещение
линейный - преобразованый логический
физический - либо логический, либо преобразованый логический
> вот правильный ответ: > в режиме защиты адреса (бит 0 = 1 в CR0) логический адрес > является КОРРЕКТНЫМ если он не выходит за предел адреса > (limit+granularity_bit) установленный в соответствующем > сегментному индексу дескрипторе. > > перед проверкой логического адреса на КОРРЕКТНОСТЬ > процессор выполнит проверку дескриптора - 1) индекс > дескриптора (селектор)(сегмент) не может быть равен 0;
Селектор в моем примере не 0.
2) права доступа на дескриптор должны СООТВЕТСТВОВАТЬ (тут
> много нюансов) правам кода т.е. правам дескриптора CS;
Соответствуют
3)> операция с памятью должна допускаться типом данного
> дескриптора; Допускается
4) переходные эффекты (чтение dword по адресу
> fffffffe etc (не у всех процов)) > в случае ошибки генерируется GeneralProtectionFault или > (при стековых командах но не всегда) StackFault или > Double/TripleFault > > к логическому адресу прибавляется база дескриптора и > получается линейный адрес - он же физический если бит 1f = > 0 в CR0 > Может к смещению ?
Хорошо, прибавили. Получили... что ? Мы в виндах.
> если установлен режим страничного преобразования адреса > (бит 1f = 1 в CR0) то происходит преобразование линейного > адреса в физический по двухуровневой таблице страниц. при > этом на каждом уровне происходит проверка страницы на > доступность (бит юзер/супервизор) и присутствие в памяти > (бит present) > по неприсутствию всегда генерится PageFault но надо помнить > что у нее приоритет ОЧЕНЬ низкий и до нее часто генерится > еще что-нибудь > по недоступности тоже всегда должна генериться PageFault но > тут есть процессорозависимые нюансы >
Так на каком этапе проц генерит эксептион в примере
mov eax, 0
mov [eax], 1
?????
|
|
|