2013-08-26 2 views
0

У меня очень простой вопрос. Я не могу найти ответ самостоятельно, поскольку у меня нет никаких условий для его проверки.Доступ к байтам страницы

Если я получаю 4 байта на краю страницы, что произойдет?

mov eax, dword [0x100000+4095] 

Каковы будут верхние три байта, когда у меня есть доступ к странице на 0x101000, а когда нет?

Пожалуйста, помогите.

+0

Если страница не отображена, операционная система должна получить ошибку страницы и отобразить ее для вас. Если у вас нет доступа к странице, операционная система, скорее всего, убьет ваш процесс (он будет «сбой»). –

+0

uhm, так что байты будут взяты со страницы после него? – user35443

+0

Если с операционной системой вам будет удобно читать эту страницу, то да. –

ответ

1

Что происходит в основном зависит от вашей операционной системы. Если у вас нормальный доступ к памяти, ничего не произойдет. значение просто читается, что есть в то время. Если доступ к странице не разрешен, ваша программа будет генерировать ошибку страницы, с которой ОС должна справиться.

Если страница находится на диске, поскольку она была заменена, тогда ОС загрузит страницу и возобновит вашу программу там, где она была остановлена. Ваша программа не заметит этого. Если страница недействительна, ОС поднимет исключение и в зависимости от ОС вы сможете ее поймать, или ваша программа выйдет из строя.

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

Смежные вопросы