Что находится в ячейке памяти 1 на компьютере Intel x86 под управлением Windows XP? - PullRequest
3 голосов
/ 16 февраля 2010

Я использую Windows XP на компьютере с процессором Intel x86 и получил ошибку в инструкции в ячейке памяти 0x00000001.

Я не беспокоюсь об отладке ошибки, но мне было интересно узнать, какие инструкции обычно находятся в самом начале памяти.

Единственными процессорами, для которых я написал низкоуровневый код, являются микроконтроллеры PIC, и я знаю, что первой ячейкой памяти будет GOTO, а затем векторы прерываний.

Ответы [ 3 ]

6 голосов
/ 16 февраля 2010

Windows гарантирует, что первые 64 КБ и последние 64 КБ памяти всегда будут вызывать нарушение прав доступа для чтения или записи. Это облегчает обнаружение разыменования нулевого указателя.

См. Рисунок на этой странице под заголовком

Свободная, зарезервированная и выделенная виртуальная память

http://msdn.microsoft.com/en-us/library/ms810627.aspx

3 голосов
/ 16 февраля 2010

Я считаю, что нулевая страница адресного пространства процесса преднамеренно недоступна в Windows, чтобы помочь обнаружить ошибки нулевого указателя, в этом случае там ничего нет.

3 голосов
/ 16 февраля 2010

Это не фактическое физическое адресное пространство 000001. XP - это современная виртуальная страничная память ОС, поэтому каждое приложение получает свое собственное адресное пространство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...