Re[5]: GDT
От: Stanky  
Дата: 01.01.05 11:50
Оценка:
Пасибы, теперь картина проясняется!!!

> На мой взляд, все достаточно просто — этот механизм позволяет "отлавливать" ошибочные действия в программе, например, с указателями в C/C++:

> — Запись NULL в переменную — это нормально (запись "null descriptor" в сегментые регистры, отличные от CS и SS, разрешен).
> — Выполнять действия по адресу NULL — это ошибка (запись "null descriptor" в сегментые регистры CS и SS генерирует исключение);
> — Запись и чтение по адресу NULL — это ошибка (обращение к памяти по сегментномуу регистру, содержащему "null descriptor", генерирует исключение);
>
А вот с этим я не согласен!!! В указателе селектор не присутствует, в нём есть только смещение в сегменте на который указывает селектор данных (DS, ES)!!!
Напиример в винде нашим программам выделяется сегмент данных размером 2ГБ (ну мне кажется так сделано), а селектор этого сегмента загружается в DS, ES и SS!!! Механизм отлавливания левых указателей реализуется другим путём!!!

> P.S. Я считаю, что лучше самому прочесть "первоисточники", чем их цитировать. Только поэтому я не стал приводить как раз именно эту

> фразу, которые Вы сами нашли.
>
Я не жалею, что скачал — вещь действительно великолепная!!!
Posted via RSDN NNTP Server 1.9
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.