DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

оробка переривань в операційній системі MS-DOS

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра програмного забезпечення

Інформація про роботу

Рік:
2015
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Системне програмування
Група:
ПІ

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” КАФЕДРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ  Звіт Про виконання лабораторної роботи № 1 з дисципліни «Операційні системи та системне програмування» Тема: оробка переривань в операційній системі MS-DOS Завдання Скласти програму, яка б виводила на екран зміст всіх ненульових векторів переривань. Після виклику програма повинна залишатись резидентною. Вектор переривань, яким ініціалізується програма, підібрати самостійно. Використані типи даних ^word; - для опису вказівників на слово, для того щоб в них вмістити адрес сегмента та зміщення всередині цього сегмента; word, integer - для опису цілих змінних, нап., для лічильників у циклі; string - для запису шістнадцяткових номерів, адрес та зміщень var OldVect: procedure; - для запису адреси стандартного обробника переривань. Алгоритм виконання завдання Після початку роботи програми ми зберігаємо стандартний вектор обробки переривань від клавіатури, та заміняємо його на обробник. Обробник перевіряє яка клавіша була натиснута, і якщо це була F12, то він починає виконувати поставлене завдання, інакше управління передається стандартному обробнику переривання. Для виконання завдання, обробник очищає екран, і отримує адреси всіх переривань, якщо вони не нульові, то виводить їх на екран. Для отримання адреси отримуємо сегмент в якому знаходиться переривання та зміщення всередині сегменту, виходячи з того, що переривання починають розміщуватися з нульової адреси оперативної пам’яті. Після виконання програма залишається резидентною в пам’яті. Блок-схема алгоритму роботи програми Текст програми program lab1; uses dos, crt; var OldVect: procedure; ofset,seg:^word;{pointer to WORD} b:word; {dec to hex} function hex(a:word):string; var b,c:integer; d:string; begin d:=''; for b:=0 to 3 do begin c:=a mod 16; if c>9 then c:=c+39; d:=chr(c+48)+d; a:=a div 16; end; hex:=d; end; {F+} procedure GetAllNotNullVect; interrupt; var i: byte; p: pointer; NLineIndex: byte; begin if Port[$60]=$58 then begin clrscr; {pereburaem vsi pereruvannya} for b:=0 to 255 do begin {get segment} seg:=ptr(0,(b*4)); {get offset} ofset:=ptr(0,(b*4+2)); if (seg^<>0)and(ofset^<>0)then begin textcolor(green); write(' ',hex(b),': '); textcolor(blue); write(hex(seg^),':',hex(ofset^)); end; end; end; OldVect; end; {$F-} {$M $2048, 0, 0} Begin clrscr; GetIntVec($9, @OldVect); SetIntVec($9, @GetAllNotNullVect); Keep(0); readln; readln; End. Результат роботи програми: 
Антиботан аватар за замовчуванням

2015

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!