Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Резидентні програми у ІBM PC.

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

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

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

Рік:
2004
Тип роботи:
Розрахункова робота
Предмет:
Системне програмування
Група:
КІ-3

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра електронних обчислювальних машин Звіт про виконання розрахункової роботи з курсу „ Системне програмування ” Тема: Резидентні програми у ІBM PC. Виконав: студент групи КІ-3 Перевірив: Львів – 2004 Мета роботи: Вивчення принципів побудови та функціонування резидентних програмам. Короткі теоретичні відомості Програми, що повинні постійно знаходитись в пам'яті і миттєво реагувати на події, що відбуваються в обчислювальній системі, носять назву резидентних в пам'яті (Terminate but Stay Resident, TSR). Резидентною може бути програма, як .COM, так і .EXE формату, одначе, оскільки резидентна програма повинна бути максимально компактною, найчастіше використовується .COM формат. Резидентні програми, як правило, складаються з двох частин - ініціалізуючої та робочої (резидентної). В тексті програми резидентна частина розміщується на початку, ініціалізуюча – за нею. Під час першого виклику програма повністю завантажується в пам'ять і управління передається до секції ініціалізації, яка заповнює або модифікує вектори переивань, настроює програму на конкретні умови роботи і за допомогою переривання DOS INT 21h з функцією 31h завершує програму, залишаючи в пам'яті її резидентну частину. Розмір резидентної частини (в параграфах) передається DOS в регістрі DX. Вказувати при цьому сегментну адресу програми немає необхідності, оскільки він відомий DOS. Для визначення розміру резидентної секції її можна завершити конструкцією вигляду "res_size equ $ - your_proc", де your_proc - адреса початку програми, а при виклику функції 31h в регістр DX переслати результат обчислення виразу (res_size + 10Fh)/16. Функція 31h, закріпивши за резидентною програмою необхідну для її функціонування пам'ять, передає управління командному процесору COMMAND.COM і обчислювальна система, таким чином, повертається у вихідний стан. Наявність програми, резидентної в пам’яті, ніяк не відбивається на ході основного обчислювального процесу за виключенням того, що зменшується об’єм доступної йому пам’яті. Одночасно може бути завантажено декілька резидентних програм. Завдання на розрахункову роботу Створити резидентну програму, що реалізує вказаний викладачем варіант завдання. Програму оформити у вигляді .COM файлу. Запустити створену програму та задокументувати результати її виконання. Скласти звіт про виконану роботу. Вміст .asm-файлу .model tiny .code ;визначення констант ALT_R EQU 13h CTRL_R EQU 12h ORG 100h myproc PROC far jmp init ; дані резидентної частини old_09h DD 0 old_stack DD 0 mesun DB 'CTRL+R - Resident UNloaded.' DB 10,13,10,13,10,13,10,13,10,13,10,13,10,13,10,13,10,13 mesunlen EQU $-mesun mesloaded DB 'Resident program is still in memory.' mesl1len EQU $-mesloaded mesld2 DB 'Press CTRL+R to unload it.',10,13 mesl2len EQU $-mesld2 ; резидентна секція програми new_09h: cli ; виклик старого обробника переривання pushf call dword ptr cs:old_09h ;перемикання стеку mov word ptr cs:old_stack,sp mov word ptr cs:old_stack+2,ss mov sp,cs mov ss,sp mov sp,offset cs:TOS push bp push ax push bx push cx push dx push ds push es mov ax,cs mov ds,ax mov ax,40h mov es,ax ; обробка символа з кільцевого буфера без прямого видобування mov bx,es:1ah mov ax,es:[bx] cmp al,CTRL_R ;;;;;;;;;ctrl+r pressed - uninst je ctrlr cmp ah,ALT_R jne continue test byte ptr es:17h,01000000b jnz continue test byte ptr es:17h,00100000b jz continue test byte ptr es:17h,00010000b jz continue ; скен-код - в заданих межах. Перевірити, чи активовано <Caps Lock>? ;test byte ptr es:17h,01000000b ;jnz continue ; skip if CapsLock is on ;test byte ptr es:17h,01110000b ;jz continue ; skip if NumLock & Scroll Lock are off ; вивід повідомлення про стан резидента mov ax,cs mov es,ax mov ah,13h mov al,1 mov bx,0042 ...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

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

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

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

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

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини