МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Чувашский государственный университет имени И.Н. Ульянова» Факультет информатики и вычислительной техники Кафедра вычислительной техники Отчет по лабораторной работе №2 по дисциплине: «ЭВМ и периферийные устройства» «ЗАЩИЩЕННЫЙ РЕЖИМ МИКРОПРОЦЕССОРОВ INTEL X86» Вариант № 20 Выполнила: студентка гр.ИВТ-42-19 Сабитов Илназ Маратович Проверила: доцент Андреева Антонина Аркадьевна Чебоксары 2021 Цель работы: изучить и закрепить на практике теоретические сведения по защищенному режиму микропроцессоров intel x86, написать обработчик ошибки переполнения. Текст задания: 6. Написать обработчик прерывания INT 18d, выводящий на экран байт прав доступа заданного дескриптора в двоичной форме. Селектор дескриптора задается в качестве параметра при вызове этой функции. Для получения байта прав доступа можно воспользоваться командой LAR. Граф-схема: Текст программы: ... Mess MessError MessAr ... Int18_proc db 'Protected Mode$' db 'Error ZF = 0$' db 'AR = 00000000b$' Proc Near lar di,si jnz mov lea add mov cx, bx, bx, ax, outError 8 MessAr 5 15 ; обработчик прерывания ; загрузить байт прав доступа ; дескриптора(устанавливает zf) ; проверить zf ; счетчик байт = 8 бит ; исходное сообщение ; смещение для изменения ; байт прав доступа с 15 по 7 бит start1: bt di, ax mov dl,'0' рандомного значения adc dl, 0 mov [bx],dl next1: dec ax inc bx loop start1 дескриптора ; проверка бита( установка cf) ; заносим символ 0 чтобы не было ; прибавляем флаг cf ; заменяем символ на символ dl ; ; ; повторять с 15 по 7 бит lea bx, MessAr jmp Print ; загрузить измененную строку outError: lea bx,MessError ; загрузить сообщение об ошибке Print: mov dx,200Ch int 39d iret Int18_proc endp ; Координаты вывода ; вывод ; возврат ... MY_PROC PROC pusha push push pop es Video_Desc es mov dh,0fh call Paint_Screen mov ax,Cs_Data mov ds,ax lea bx,Mess mov dx,200Bh int 39d mov si, Cs_Code ;mov si, 50*8 нельзя получить прав доступа int 18d pop es popa ret MY_PROC ENDP ... ; ; ; ; В регистр ES заносим селектор сегмента видеопамяти Очищаем экран ; DS - сегмент данных ; Адрес сообщения ; Координаты вывода ; Вывод строки на экран ; ; error адрес кода, откуда Результаты выполнения программы: Выводы по работе: в процессе выполнения лабораторной работы были изучены и закреплены на практике теоретические сведения по защищенному режиму микропроцессоров intel x86, написан обработчик ошибки переполнения. 1 байт прав доступа Ответил 2 побитно расшифровать байт прав доступа Cs_Code AR=1001011b AR=10011011 P DPL 1 0 0 Бит Уровень присутствия привелегий 1 1 1 1 Признак дескр сегм кода C 0 Бит подчинения R 1 Бит считываемого сегмента A 1 Бит обращения