Size: a a a

2020 March 14

s

s54816 in pro.asm
d1vunit
две старшие единички
В коде это где? По ссылке такого нету.
источник

d

d1vunit in pro.asm
CODE_D  db 0xff,0xff,0x00,0x00,0x00,10011010b,00001100b,0x00
источник

d

d1vunit in pro.asm
я немного изменил убрал два не значащих бита
источник

s

s54816 in pro.asm
d1vunit
я немного изменил убрал два не значащих бита
Окей. 00001100b — 4 бита справа это лимит. Следующие два тебе не нужны. Два старших — это G и D/B соответственно, и они всё ещё не выставлены.
источник

d

d1vunit in pro.asm
выставлены
источник

d

d1vunit in pro.asm
всего флагов 4
источник

s

s54816 in pro.asm
источник

d

d1vunit in pro.asm
и они начинаются с права налево
источник

d

d1vunit in pro.asm
значит я не правильно дескриптор понял как он устроен
источник

d

d1vunit in pro.asm
я запутался где лимит
источник

d

d1vunit in pro.asm
лемит же это 0xff,0xff
источник

s

s54816 in pro.asm
d1vunit
лемит же это 0xff,0xff
Он разбросан по всему дескриптору по кусочкам. Так же как и база. Потому что легаси.
источник

s

s54816 in pro.asm
d1vunit
лемит же это 0xff,0xff
Вон там на картинке указано, какая часть лимита (в битах, считая с нуля справа) куда попадает. Младшие биты в младшие байты дескриптора, старшие в предпоследний байт.
источник

d

d1vunit in pro.asm
и что дают эти  бит лимита
источник

d

d1vunit in pro.asm
эти 8 бит*
источник

d

d1vunit in pro.asm
всего же получается 24 бита
источник

s

s54816 in pro.asm
d1vunit
и что дают эти  бит лимита
Возможность выставить лимит больше 64 килобайт при убранном G или больше 256 метров при выставленном. Если у нас «классический» плоский режим, нам нужно и G, и старшие биты лимита, чтобы 4 гигабайта сделать.
источник

d

d1vunit in pro.asm
понятно
источник

d

d1vunit in pro.asm
получается так тогда
источник

d

d1vunit in pro.asm
CODE_D  db 0xff,0xff,0x00,0x00,0x00,10011010b,0xff,00001100b,0x00 ; code descriptor
источник