Лабораторная работа №3
Цель работы: изучить практические методы перевода МП в защищённый режим и организации межуровневой защиты.
Сегмент видеобуфера RPL=1,DPL=3 Внешний сегмент RPL=0, DPL=1. Адрес A=110130h, P=2130h. Символ: код 13h, размещение 630h.
P286; Р разрешает асемблировать команды защищенного режима ; для MASM надо.286P ; ; Модуль Main NAME main bios_data_seg SEGMENT at 0040h; сегмент начинается с адреса 0040 ORG 0067h; переменные io_rom - с 0067 io_rom_init dw?; используютс в сегменте данных io_rom_seg dw?; BIOS для хранения двойного bios_data_seg ENDS; слова адреса ; descriptor STRUC; сруктура дескриптора seg_limit dw 0; предел(размер) сегмента base_lo_word dw 0; базовый адрес base_hi_byte db 0 access_rights db 0; байт прав доступа dw 0; резерв для адреса в МП286 descriptor ENDS ; cmos_port equ 070h code_seg_access equ 10011010b code_seg_access9 equ 10011010b; байт атрибутов код сег 2 ; data_seg_access equ 10010010b data_seg_access5 equ 11110010b; ******************* data_seg_access7 equ 10010010b;******************* ; shluz_access10 equ 11100100b; байт атрибутов шлюза сег 2 wc equ 00000100b; максим число передаваемых ; в процедуру параметров ; disable_bit20 equ 11011101b ; enable_bit20 equ 11011111b ; inta01 equ 021h intb01 equ 0a1h port_a equ 060h shut_cmd equ 0feh shut_down equ 00fh ; status_port equ 064h virtual_enable equ 0001h ; ton1 equ 5000h ton2 equ 1000h ; …………………………………………. ; cseg SEGMENT para public 'code' ASSUME cs:cseg ORG 100h start: jmp main ; EVEN ; gdt LABEL byte ; пустой дескриптор, селектор = 0 dummy db 0,0,0,0,0,0,0,0 ; Дескриптор GDT ddt_desc EQU (($-gdt)/8)*8 + 0000000000000000b;селектор=8 gdt1 dw gdt_leng base_lo_word_1 dw 0 base_hi_byte_1 db 0 db data_seg_access db 0,0 ; Дескриптор кодового сегмента cs_code EQU (($-gdt)/8)*8 + 0000000000000000b;селектор = 10 gdt2 dw cseg_leng base_lo_word_2 dw 0 base_hi_byte_2 db 0 db code_seg_access db 0,0 ; Алиас дескриптора кодового сегмента cs_data EQU (($-gdt)/8)*8 + 0000000000000000b;селектор = 18 gdt3 dw cseg_leng base_lo_word_3 dw 0 base_hi_byte_3 db 0 db data_seg_access db 0,0 ; Дескриптор стекового сегмента ss_desc EQU (($-gdt)/8)*8 + 0000000000000000b;селектор = 20
gdt4 dw 0FFFFh base_lo_word_4 dw 0 base_hi_byte_4 db 0 db data_seg_access db 0,0 ; Дескриптор сегмента данных;******************* ds_desc equ (($-gdt)/8)*8 + 0000000000000001b;селектор = 28 gdt5 dw 0FFFFh base_lo_word_5 dw 0 base_hi_byte_5 db 0 db data_seg_access5 db 0,0 ; Дескриптор дополнительного сегмента данных;***************** es_desc equ (($-gdt)/8)*8 + 0000000000000001b;селектор = 30 gdt6 dw 0FFFFh base_lo_word_6 dw 0 base_hi_byte_6 db 0 db data_seg_access5 db 0,0 ; Дескриптор сегмента данных 1;************* ds_desc_1 equ (($-gdt)/8)*8 + 0000000000000000b;селектор = 38 gdt7 dw 2208h base_lo_word_7 dw 0 base_hi_byte_7 db 0 db data_seg_access7 db 0,0 ; Дескриптор дополнительного сегмента данных 1;*************** es_desc_1 equ (($-gdt)/8)*8 + 0000000000000000b;селектор = 40 gdt8 dw 2208h;razmer vneshnego segmenta base_lo_word_8 dw 0 base_hi_byte_8 db 0 db data_seg_access7 db 0,0 ; Дескриптор кодового сегмента 2 cs_code2 equ (($-gdt)/8)*8 + 0000000000000000b;селектор = 48 gdt9 dw cseg2_leng base_lo_word_9 dw 0 base_hi_byte_9 db 0 db code_seg_access9 db 0,0 ; Дескриптор шлюза кодового сегмента 2 cs_shluz2 equ (($-gdt)/8)*8 + 0000000000000000b;селектор = 50 gdt10 dw offset beep;адрес начала процедуры в сегменте 2 dw cs_code2; селектор сегмента 2 db WC; число передаваемых параметров в проц db shluz_access10; байт атрибутов шлюза dw 0 ; ……………………………………………………………. ; mov ax,cs_data mov ds,ax mov base_lo_word_7,2130h;// базовый адрес внешнего сегмента mov base_hi_byte_7,15h;********************************* mov base_lo_word_8,2130h mov base_hi_byte_8,15h mov ax,ds_desc_1 mov ds,ax mov ax,es_desc_1 mov es,ax mov di,630h;****************************** mov ah,40h mov al,13h;****************************** stosw …………………………………………………………….
Результат:
Вывод по работе: В результате проделанной лабораторной работы были изучены практические методы перевода МП в защищённый режим и организации межуровневой защиты. Отсутствие перехода в защищённый режим будет наблюдаться при: -уменьшении уровня RPL или увеличения уровня DPL; -размещении символа за пределами сегмента;
-уменьшении предела внешнего сегмента.
Читайте также: А. Лабораторная установка Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|