· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Дескриптор сегмента

Посл.отвђт Сообщенiе


Дата: Мар 30, 2004 21:38:24

Доброго времени суток.
Пытаюсь разобраться с програмированием в защищенном режиме.
В уроках Broken Sword описание дескриптора выглядит как:
(урок 8)
;дескриптор 32-разрядного сегмента кода:
;база = 00000000h, размер = FFFFFFFFh
CODE_descr db 0FFh,0FFh,00h,00h,00h,10011010b,11001111b,00h

В его же уроках написано, что он должен выглядеть как
(урок 2)
1. лимит сегменьа 15:0 |15:0
2. база 15:0 |31:15
3. база 16:23 |0:7
4. тип |11:8
5. D |12
6. DPL |14:13
7. P |15
8. лимит сегменьа 19:16|19:16
9. AVL |20
10. 0 |21
11. D/B |22
12. G |23
13. база 31:24 |31:24

исходя из этого база должна быть СF0FFh...
В общем получить из одного другое не получаеться. Естественно елементы угадываються - но их порядок остаеться для меня непостижимым...

Обьясните пожалуста как составляються дескрипторы плз...


Дата: Мар 30, 2004 23:15:24 · Поправил: Black_mirror

Raven
                       DD        D
                       PP        / 
 L3   L2  B4  B3  B2  PLLDtype  GB  L1L1  B1
0FFh,0FFh,00h,00h,00h,10011010b,11001111b,00h 
Вобщем если собрать эти биты в таком порядке:
B1B2B3B4 и L1L2L3 то получим 32 битную базу и 20 битный лимит.
Если бит G=0, то размер сегмента лимит+1 байт,
а если G=1, то размер лимит+1 4х-килобайтная страница.


Дата: Мар 31, 2004 20:44:09

Спасибо огромное.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.056