МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
”ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”
Розрахунково-графічне завдання №1
з курсу
"Мікропроцесорні системи"
Виконав:
ст. гр. xxxxxxx
xxxxxxxxxxxxx
Перевірив:
xxxxxxxxx
Харків 2006
Зміст
1. Індивідуальне завдання
2. Пояснення до змісту роботи
3. Опис програми
4. Текст програми
5. Результати роботи програми
6. Висновки
1. Індивідуальне завдання
Варіант 16
В захищеному режимі виконати наступні дії:
I. Викликати необхідне згідно із індивідуальним завданням виключення
II. Обробити задане виключення двома засобами:
а) прибравши причину виключення;
б) пропустивши команду, що визвала виключення.
III. Обробити задане зовнішнє переривання.
2. Пояснення до змісту роботи
Для виконання завдання необхідно виконати наступні дії:
1) розробити дескриптори усіх необхідних сегментів пам’яті і сформувати з них глобальну дескрипторну таблицю GDT.
2) за допомогою регістра GDTR задати базову адресу і розмір таблиці GDT;
3) розробити дескриптори усіх шлюзів, сформувати з них таблицю IDT.
4) за допомогою регістра IDTR задати базову адресу і розмір таблиці IDT;
5) сформувати дані для повернення в реальний режим;
6) заборонити масковані і немасковані переривання;
7) перевести мікропроцесор у захищений режим;
8) виконати в захищеному режимі дії, задані індивідуальним завданням;
9) повернутися в реальний режим;
10) дозволити масковані і немасковані переривання.
Для розуміння принципів програмування роботи в захищеному режимі необхідно розуміти його особливості. Захищений режим має такі особливості роботи з перериваннями (порівнюючи з реальним режимом):
1) вводиться новий тип переривань – виключення;
2) замість дальніх адрес в таблиці переривань використовуються дескриптори шлюзів;
3) таблиця переривань може знаходитися в будь-якому місці пам’яті.
Виключення поділяються на три типи:
- Помилка (trap);
- Пастка (fault);
- Аварія (abort).
Помилка – це виключення, що виникає в ситуації помилкових дій програми й припускається, що таку помилку можна виправити. Виконання програми продовжується починаючи із команди, при якій виникло виключення.
Пастка – це виключення, що виникає відразу після виконання команди. Виконання програми продовжується із наступної команди,що йде за командою на якій виникло виключення. На пастках строїться механізм відладки програм.
Аварія – це виключення, що не дозволяє продовжити виконання перерваної програми і сигналізує про серйозні порушення цілісності системи.
3. Опис програми
Для написання програми для виконання разрахункового завдання, скористались модулем PROT і програмою P_INT, що поставляються разом із індивідуальним завданням. В модулі PROT містяться основні необхідні константи і функції для створення власних таблиць GDT та IDT, для переходу в захищений режим, містяться також заглушки для всіх апаратних і програмних переривань. Програма P_INT містить перевизначення необхідних для роботи, або заданих за індивідуальним завданням переривань, в ній задається вміст таблиць GDT та IDT (в ній визначаються селектори заглушок, або необхідних переривань, на необхідних місцях), програма реалізує перехід в захищений режим, імітує виникнення програмного переривання, а також реалізує вічний цикл, до виникнення апаратного переривання. Після цього реалізується вихід до реального режиму, шляхом скидання мікропроцесору (не працює на нових моделях мікропроцесорів) або шляхом відновлення старої GDT та IDT, і повернення до реального режиму. Нами було додано необхідні по індивідуальному завданню апаратне і програмне переривання, і реалізовано виключну ситуацію для їх виникнення.
4. Текст програми
{----Модуль содержит константы, типы переменных, переменные,----}
{------процедуры и функции для работы в защищенном режиме-------}
unit prot;
interface
uses crt;
const
hex_tabl:array[0..15] of char='0123456789ABCDEF';
s2:string='Run time error: исключение ';
{--------------Селекторы дескрипторов сегментов---------------}
code_sel =$08; { кода программы, }
code_sel2 =$10; { кода модуля PROT, }
data_sel :word =$18; { данных, }
stack_sel :word =$20; { стека, }
video_sel :word =$28; { видеопамяти, }
mem_sel :word =$30; { расширенной памяти, }
{-----------------Биты байтов доступа сегментов---------------}
present =$80; { P=1 : сегмент есть в памяти }
nosys =$10; { S=1 : сегмент несистемный }
exe =$08; { E=1 : сегмент выполняемый }
down =$04; { ED=1: сегмент расширяется вниз }
wr_ena =$02; { W=1 : разрешена запись в сегмент }
rd_ena =$02; { R=1 : разрешено чтение из сегмента }
{---------Значения поля TYPE системных дескрипторов-----------}
type_int =$06; { шлюза прерывания для 80286 }
type_trap =$07; { шлюза исключения для 80286 }
type_TSS =$01; { сегмента TSS }
type_call
Одними из наиболее популярных услуг на рынке IT-технологий являются создание и продвижение лендингов. Они способны положительно влиять на деятельность любого бизнес-проекта в интернете. Судя по многочисленным отзывам, заказавшие создание лендингов люди ни разу не пожалели о потраченных деньгах. Они вложили в будущее, которое неразрывно связано с интернетом. Всё больше и больше предпринимателей обращаются к услугам разных агентств, веб-студий, чтобы заказать создание лендинга у профессионалов.