ВУЗ:
Составители:
19
сегментной адресацией памяти, которая осуществляется совсем не так, как
в реальном режиме.
Следует заметить, что для выполнения рассмотренной ниже
программы необходимо, чтобы на компьютере была установлена система
MS-DOS "в чистом виде" (не в виде сеанса DOS системы Windows). Перед
запуском программ защищенного режима следует выгрузить как систему
Windows, так и драйверы обслуживания расширенной памяти HIMEM.SYS
и EMM386.EXE.
Листинг 1.1 – Программа, работающая в защищенном режиме
1 ;*********************************************
2 ; Программа, работающая в защищенном режиме *
3 ;*********************************************
4 .386P ; Разрешение трансляции всех (в том
5 ; числе и привилегированных команд
6 ; процессоров 386 и 486
7 ; Структура для дескриптора сегмента
8 descr struc
9 lim dw 0 ; Граница (биты 0 - 15)
10 base_1 dw 0 ; База (биты 0 - 15)
11 base_m db 0 ; База (биты 16 - 23)
12 attr_1 db 0 ; Байт атрибутов 1
13 attr_2 db 0 ; Граница (биты 16 - 19)
14 ; и атрибуты 2
15 base_h db 0 ; База (биты 24 - 31)
16 descr ends
17
18 data segment use16
19 ; Таблица глобальных дескрипторов GDT
20 ; Селектор 0 –
обязательный нулевой дескриптор
21 gdt_null descr <0,0,0,0,0,0>
22 ; Селектор 8 - сегмент данных
23 gdt_data descr <data_size-1,0,0,92h,0,0>
24 ; Селектор 16 - сегмент кода
25 gdt_code descr <code_size-1,0,0,98h,0,0>
26 ; Селектор 24 – сегмент стека
27 gdt_stack descr <255,0,0,92h,0,0>
28 ;Селектор 32 - видеобуфер
29 gdt_screen descr <4095,8000h,0bh,92h,0,0>
30 gdt_size=$-gdt_null ; Размер GDT
31 ;======================================================
32 ; Поля данных программы
33 pdescr dq 0 ; Псевдодескриптор для команды lgdt
34 sym db 1 ; Символ для вывода на экран
35 attr db 1ah ; Атрибут символа
сегментной адресацией памяти, которая осуществляется совсем не так, как в реальном режиме. Следует заметить, что для выполнения рассмотренной ниже программы необходимо, чтобы на компьютере была установлена система MS-DOS "в чистом виде" (не в виде сеанса DOS системы Windows). Перед запуском программ защищенного режима следует выгрузить как систему Windows, так и драйверы обслуживания расширенной памяти HIMEM.SYS и EMM386.EXE. Листинг 1.1 – Программа, работающая в защищенном режиме 1 ;********************************************* 2 ; Программа, работающая в защищенном режиме * 3 ;********************************************* 4 .386P ; Разрешение трансляции всех (в том 5 ; числе и привилегированных команд 6 ; процессоров 386 и 486 7 ; Структура для дескриптора сегмента 8 descr struc 9 lim dw 0 ; Граница (биты 0 - 15) 10 base_1 dw 0 ; База (биты 0 - 15) 11 base_m db 0 ; База (биты 16 - 23) 12 attr_1 db 0 ; Байт атрибутов 1 13 attr_2 db 0 ; Граница (биты 16 - 19) 14 ; и атрибуты 2 15 base_h db 0 ; База (биты 24 - 31) 16 descr ends 17 18 data segment use16 19 ; Таблица глобальных дескрипторов GDT 20 ; Селектор 0 – обязательный нулевой дескриптор 21 gdt_null descr <0,0,0,0,0,0> 22 ; Селектор 8 - сегмент данных 23 gdt_data descr24 ; Селектор 16 - сегмент кода 25 gdt_code descr 26 ; Селектор 24 – сегмент стека 27 gdt_stack descr <255,0,0,92h,0,0> 28 ;Селектор 32 - видеобуфер 29 gdt_screen descr <4095,8000h,0bh,92h,0,0> 30 gdt_size=$-gdt_null ; Размер GDT 31 ;====================================================== 32 ; Поля данных программы 33 pdescr dq 0 ; Псевдодескриптор для команды lgdt 34 sym db 1 ; Символ для вывода на экран 35 attr db 1ah ; Атрибут символа 19
Страницы
- « первая
- ‹ предыдущая
- …
- 17
- 18
- 19
- 20
- 21
- …
- следующая ›
- последняя »