Как стать автором
Обновить

Комментарии 3

xor $0x80000000,%eax # unset PG bit
это путь к непонятным ошибкам в будущем.

чистить биты нужно по настоящему:
and $0x7FFFFFFF,%eax # unset PG bit
Совершенно верно. Вы только не пояснили в чём проблема.
Позвольте дополнить:
В случае если в старшем, 31-м бите регистра EAX будет ноль, XOR с 0x80000000 выставит его в единицу, что нам не нужно. А AND с 0x7FFFFFFF однозначно оставит нулём.

0 xor 1 = 1
0 and 1 = 0
Или btr.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории