Size: a a a

pro.osdev - os development

2021 August 12

BD

Berkus Decker in pro.osdev - os development
Ваще фарш нечитабельный - ни одной символьной константы
источник

W

Wild_Wind in pro.osdev - os development
В том, что его надо читать кому-то кроме тебя.
источник

BD

Berkus Decker in pro.osdev - os development
Когда ты соберешься это править через полгода, тебе придется снова весь интел мануал перечитать чтобы вспомнить зачем там 111b
источник

C

COTULARS in pro.osdev - os development
тоже верно, но на нормальном яп я не совсем понимаю как в первые 20 бит запихнуть адрес а в оставшиеся 12 флаги
источник

BV

Boris Vinogradov in pro.osdev - os development
Сдвиги и битовые маски в помощь
источник

BD

Berkus Decker in pro.osdev - os development
Ну так выглядит это так будто ты или таблицы в видеопамяти заполняешь или забыл ее почистить
источник

BD

Berkus Decker in pro.osdev - os development
Нууу, так же как и в асме?

Даже на асме можно писать нормально с константами
источник

C

COTULARS in pro.osdev - os development
и ещё мне кое что непонятно в пейджинге, вот у нас есть таблица страниц в ней каждая запись 4 байта 32 бита тобеж, последние 12 бит флаги, первые 20 адрес, вопрос как 20 битным адресом адресовать 4гб оперативки?
источник

BD

Berkus Decker in pro.osdev - os development
Так там верхние 20 бит
источник

BD

Berkus Decker in pro.osdev - os development
То есть биты 32-12
источник

C

COTULARS in pro.osdev - os development
ну да, всёравно сути вопроса не меняет
источник

BD

Berkus Decker in pro.osdev - os development
Меняет
источник

BD

Berkus Decker in pro.osdev - os development
Ты адресуешь 32 битным адресом у которого нижние 12 бит нули
источник

C

COTULARS in pro.osdev - os development
нет погоди 1 элемент 32 бита, 0-11 биты флагов, 11-31 адрес, причем как в на вики написано физический
источник

C

COTULARS in pro.osdev - os development
вот на вики картинка
источник

RG

R G in pro.osdev - os development
рассматривай эти верхние 20 бит не как просто адрес, а как номер 4килобайтной страницы
источник

C

COTULARS in pro.osdev - os development
т.е. фактически сдвиг этого адреса это сдвиг на 4кб в физ памяти?
источник

RG

R G in pro.osdev - os development
ну да
источник

BD

Berkus Decker in pro.osdev - os development
Ну и на картинке явно написано что это биты 31-12, то есть самые старшие в адресе.
источник

BD

Berkus Decker in pro.osdev - os development
Если прочитать еще текст рядом с картинкой (особенно в интелевском мануале) оно становится внезапно понятней
источник