Как найти смещение и номер страницы виртуального адреса? - PullRequest
0 голосов
/ 21 марта 2019

При использовании x86_64 Linux с страницами 4K, какое смещение страницы для виртуального адреса 0xeas17e57? Дайте ответ в шестнадцатеричном формате, начиная с 0x. Кто-нибудь может подсказать мне, как бы вы это сделали?

1 Ответ

0 голосов
/ 21 марта 2019

Разделите на размер страницы, чтобы получить номер страницы, используйте модуль, чтобы получить смещение.В C это будет:

unsigned long address = 0xeas17e57;
const unsigned int page_size = 4096;
unsigned long page_number = address/page_size;
unsigned int offset = address % page_size;
...