Головна Головна -> Курсові роботи українською -> Інформатика, комп'ютери, програмування -> Розробка резидентної програми, що забезпечує виконання ефекту загортання при переміщенні курсору маніпулятора “миша”

Розробка резидентної програми, що забезпечує виконання ефекту загортання при переміщенні курсору маніпулятора “миша”

Назва:
Розробка резидентної програми, що забезпечує виконання ефекту загортання при переміщенні курсору маніпулятора “миша”
Тип:
Курсова робота
Мова:
Українська
Розмiр:
3,67 KB
Завантажень:
220
Оцінка:
 
поточна оцінка 5.0


Скачати цю роботу безкоштовно
Пролистати роботу: 1  2 
КУРСОВИЙ ПРОЕКТ
з дисципліни “Системне програмування”
Тема – Розробка резидентної програми, що забезпечує виконання ефекту загортання при переміщенні курсору маніпулятора “миша”
Анотація
В курсовому проекті розроблено алгоритм обробки переривань таймера на основі якого написано резидентну програму яка реалізує ефект загортання при переміщенні курсору маніпулятора “миша”. Програму виконано на рівні BIOS-переривань та команд мови Assembler, також детально розглянута структура та параметри резидентної області.
Summary
In a course project the algorithm of the events trapping of timer is developed on the basis of which resident software is written which will realize a wrapping effect at moving to the cursor of manipulator “mouse”. The program is executed at the level of BIOS-breaking and commands of language of Assembler, also in detail considered structure and parameters of resident region.


Зміст
ЗМІСТ
ОПИС ОСНОВНИХ ФУНКЦІЙ, ЩО ВИКОРИСТАНІ В ПРОГРАМІ,
БЛОК-СХЕМА ПРОГРАМИ
КОД ПРОГРАМИ З ПОЯСНЕННЯМИ (РЕМАРКАМИ)
ОПИС РОБОТИ
ВИСНОВКИ
ПЕРЕЛІК ВИКОРИСТАНИХ ЛІТЕРАТУРНИХ ДЖЕРЕЛ


2 ОПИС ОСНОВНИХ ФУНКЦІЙ, ЩО ВИКОРИСТАНІ В ПРОГРАМІ, БЛОК-СХЕМА ПРОГРАМИ
В резидентній програмі яка реалізує ефект загортання при переміщенні курсору маніпулятора “миша” використано наступні функції:
jmp - команда безумовного переходу, передає управління в іншу точку програми, не зберігаючи будь-якої інформації для повернення. Операндом може бути безпосередня адреса для переходу, а також регістр або змінна, що містить адресу. В даній програмі ця функція виконує перехід до загрузчика.
jl - команда, яка здійснює перехід, аналогічний попередній, з умовою якщо перший операнд при попередньому порівнянні виявився меншим від другого.
jne - ця команда здійснює перехід, за умови що операнди виявились не рівними між собою.
pusha - команда розміщує в стеку регістри в порядку : AX,CX,DX,BX,SP,BP,SI,DI.
popa - команда виконує дії повністю протилежні pusha, але поміщене в стек значення SP або ESP ігнорується. popa завантажує зі стеку DI,SI,BP, збільшує SP на 2, і завантажує BX,DX,CX,AX.
mov - базова команда пересилання даних. Здійснює копіювання даних з джерела (вказується другим) в приймач (вказується першим, одразу після назви команди).
cmp - команда зрівнює операнди і встановлює флажки. Процес здійснюється шляхом вирахування джерела (число, регістр або змінна) з приймача (регістр або змінна, приймач та джерело не можуть бути змінними одночасно), причому результат вирахування нікуди не записується. Єдиним наслідком роботи цієї команди є зміна флажків CF, OF, SF, ZF, AF і PF. В даній програмі команда використовується в поєднанні з командами переходу jmp, jl та jne.
iret - вихід (повернення) з переривання. Повертає зі стеку значення IP, CS і FLAGS які були до переривання. 


Блок – схема резидентної частини програми
Так Ні
 
Так Ні
Блок – схема загрузочної частини програми
 
Програма на мові Assembler
.286 ; задання типу процесора
code segment
org 100h
assume cs:code, ds:code
intNumber equ 1ch ;номер переривання, що перехоплюється
start:
jmp install
DarkFunction proc
pusha ; занесення усіх основних регістрів до стеку
mov ax,0003h ; визначення положення курсору
int 33h
;---------------------------------------x-------------------------------
cmp cx,631 ; перевірка досягнення крайньої правої точки
jl m4
mov ax,0004h ; установка курсору на протилежну позицію
mov cx,1
int 33h
m4:
cmp cx,0 ; перевірка досягнення крайньої лівої точки
jne m3
mov ax,0004h ; установка курсору протилежну позицію
mov cx,630
int 33h
;----------------------------------------y------------------------------
m3:
cmp dx,199 0 ; перевірка досягнення крайньої нижньої точки
jl m5
mov ax,0004h ; установка курсору протилежну позицію
mov dx,1
int 33h
 
m5:
cmp dx,0 0 ; перевірка досягнення крайньої верхньої точки
jne m6
 
mov ax,0004h ; установка курсору протилежну позицію
mov dx,198
 
int 33h
;------------------------------------------------
m6:
popa ; витягнути зі стеку всі занесені основні регістри
iret
endp
old_int: ; змінні для збереження старої адреси вектора intNumber
old_ip dw 0
old_cs dw 0
;------------------------------------------------
install:
mov ah, 35h
mov al, intNumber
int 21h ; отримати адресу попереднього вектора переривання intNumber
mov [old_ip], bx ; зберегти молодше слово адреси в old_ip
mov [old_cs], es ; зберегти старше слово адреси в old_cs
mov ah, 25h
mov al, intNumber
mov dx, offset DarkFunction
int 21h ; встановити нову адресу вектора
mov dx, offset instal l ; завершити роботу i залишити резидентною
int 27h ;частину програми по мітку install
ends
end start


ОПИС РОБОТИ
Програма складається з двох частин : резидентної, в якій виконуються безпосередньо завдання роботи і загрузчика, який заносить резидентну частину в пам’ять.

Завантажити цю роботу безкоштовно
Пролистати роботу: 1  2 



Курсова робота на тему: Розробка резидентної програми, що забезпечує виконання ефекту загортання при переміщенні курсору маніпулятора “миша”

BR.com.ua © 1999-2017 | Реклама на сайті | Умови використання | Зворотній зв'язок