arsboretskiy Sep 17 2019 at 12:13Разработка Unix подобной OS — Виртуальное адресное пространство (6)Reading time7 minViews4.9KAssembler*C*System Programming*TutorialTotal votes 14: ↑13 and ↓1+12Add to bookmarks57Comments3
logost Sep 17 2019 at 13:16xor $0x80000000,%eax # unset PG bit это путь к непонятным ошибкам в будущем. чистить биты нужно по настоящему: and $0x7FFFFFFF,%eax # unset PG bit
IGR2014 Sep 18 2019 at 09:03Show previous commentСовершенно верно. Вы только не пояснили в чём проблема. Позвольте дополнить: В случае если в старшем, 31-м бите регистра EAX будет ноль, XOR с 0x80000000 выставит его в единицу, что нам не нужно. А AND с 0x7FFFFFFF однозначно оставит нулём. 0 xor 1 = 1 0 and 1 = 0
Разработка Unix подобной OS — Виртуальное адресное пространство (6)