Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ «ХПІ»
Лабораторна робота №14
з курсу “Системне програмне забезпечення”
на тему: “Резидентні програми та виключення“.
Виконав:
студент групи АП-30б
Попов О.С.
Перевірив:
Межерицький С. Г.
Тема: “Резидентні програми та виключення”.
Мета: Розробити програми:
· виклик переривання 4h;
· пограму, яка при кожному перериванні 4h буде змінювати кольор бардюру;
· пограму, яка за допомогою вільного вектору буде також змінювати кольор бардюру;
.Bat файли цих 3 програм:
Int4h.bat - програма виклику переривання 4h;
tasm.exe int4h.asm
tlink.exe int4h.obj
Lab14.bat - програма зміни кольору при переривані 4h;
tasm.exe lab14.asm /m2
tlink.exe lab14.obj /t
New.bat - програма з використанням вільного вектору;
tasm /n/t/m2 new.asm
tlink new.obj
Тексти програм:
Int4h.asm - програма виклику переривання 4h;
masm
model small
.data
.code
main:
int 4h
mov ah,4ch
int 21h
end main
Lab14.asm - програма зміни кольору при переривані 4h;
Частини програми, що були змінені:
.286
int_tab segment at 0h ; Таблица векторов прерываний:
org 4h*4 ; адрес вектора 4h,
vect_4h label dword ; длина поля - 4 байта
..........................................................................................
old_4h dd ? ; "Старое" значение вектора 4h
color db 0
.........................................................................................
call old_4h ; Вызов "старой" программы
; обработки прерывания 4h
; Если вызвано прерывание INT 4h, то реализуем изменение
; цвета бордюра
...............................................................................................
push es
mov ah,35h
mov al,04h
int 21h ; (es:bx) - адрес точки входа
; в программу обработки
; прерывания 4h
............................................................................................................
; В качестве "старого" запоминаем текущее значение вектора 4h
mov ax,word ptr vect_4h
mov word ptr old_4h,ax
mov ax,word ptr vect_4h+2
mov word ptr old_4h+2,AX
; В качестве текущего значения вектора 4h запоминаем адрес
; точки входа в нашу резидентную программу
mov word ptr vect_4h,offset border
mov word ptr vect_4h+2,cs
................................................................................................................
; Пытаемся удалить нашу резидентную программу
push es
mov ah,35h
mov al,04h
int 21h ; (es:bx) - текущее содержимое
; вектора 4h
----------------------------------------
New.asm - програма з використанням вільного вектору;
.286
code segment
assume cs:code
start:
mov cx,40
b:
call pause
int 58h
loop b
mov ah,4ch
int 21h
pause proc near
push cx
mov cx,04ffh
ploop0:
push cx
ploop1:
loop ploop1
pop cx
loop ploop0
pop cx
ret
pause endp
code ends
end start
Результати:
При виклику переривання 4h та прикеруванні процесом вільним вектором 58h змінюється колір бардюру, отже програма розміщується резидентно в пам’яті.
Висновки:
В ході лабораторної роботи було написано 3 програми. Всі програми працють коректно, резидентна програма може знищуватися з пам’яті та може повторно запускатися як резидентна. При роботі цих програм як резидентних і за наявністю переривання 4h та обраного мною вільного вектору 58h ми бачимо зміну кольору бардюру.
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.