Какова цель разыменования EAX, когда он содержит 0? - PullRequest
2 голосов
/ 11 августа 2010

Как следующие инструкции могут иметь смысл?

xor eax,eax
mov eax,[eax]

Когда вы выполняете XOR eax, большую часть времени вы получаете ноль, так что вы можете разыменовывать то, что находится по адресу [eax] (в данном случае eaxсодержит 0) и положить его обратно в EAX?

Ответы [ 2 ]

5 голосов
/ 11 августа 2010

Откуда взялся этот код?И на какой ОС она предназначена для запуска?

Я вижу две возможности:

  1. Этот код должен генерировать намеренную ошибку сегментации.

  2. Код предназначен для запуска в системе, в которой есть действительная страница по адресу 0, и он пытается получить доступ ко всему, что там есть.

2 голосов
/ 11 августа 2010

Не уверен, что вы хотите уточнить.

xor eax, eax 

Будет генерировать 0 всегда .

разыменование 0 чаще всего приводит к сбою страницы.То есть, если нет действительной страницы по адресу 0 ...

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