Изучение функций прерывания драйвера мыши

Автор работы: Пользователь скрыл имя, 19 Декабря 2013 в 11:57, лабораторная работа

Описание работы

Цель работы: Изучить функции прерывания драйвера мыши 33h и в соответствии с индивидуальным заданием разработать алгоритм и программу, работающую с манипулятором типа «мышь», используя прерывание 33h.
Задание: Определение нажатия любой кнопки мыши и вывод на экран времени нажатия.
Вывод: в результате выполнения данной лабораторной работы изучили функции прерывания драйвера мыши и в соответствии с вариантом разработали программу.

Файлы: 1 файл

Лаба4.doc

— 59.00 Кб (Скачать файл)

Вариант 4-5

Цель работы:

 

 Изучить функции прерывания драйвера мыши 33h и в соответствии с индивидуальным заданием разработать алгоритм и программу, работающую с манипулятором типа «мышь», используя прерывание 33h.

 

Задание:

 

Определение нажатия  любой кнопки мыши и вывод на экран времени нажатия.

 

Блок-схема:

 

 

 

 

.model small   ; модель памяти, используемая для ЕХЕ

.data

l_cl_St     db "left_click "

r_cl_St     db "right_click"

Ho    db 0

Min    db 0

Sec    db 0

.stack

.code

 

main proc

mov ax, @data

mov ds, ax

mov ax, 0000h   ; инициализация драйвера мыши

int 33h

mov ax, 0001h   ; показать курсор

int 33h 

repeat:

mov ax, 0003h   ; обработка событий мыши

int 33h

mov al, 01h   

cmp al, bl

jne g0

jmp l_cl

g0:

mov al, 02h

cmp al, bl

jne g1

jmp r_cl

g1:

mov ah, 11h             ; обработка событий клавиатуры

int 16h

je repeat

jmp exit

l_cl:

mov ax, ds             ;вывод при нажатии левой кнопки

mov es, ax

mov ah, 13h

mov al, 0

mov bl, 00000111b

mov dh, 0

mov dl, 0

mov bp, offset l_cl_St

mov cx, 11d

int 10h

 

mov ah, 02h                              ;часы реального времени

int 1Ah

mov Ho, ch

mov Min, cl

mov Sec, dh

 

mov ah, 02h

mov bh, 00h

mov dh, 01h

mov dl, 00h

int 10h

 

xor ax, ax 

mov al, Ho

mov bl, 10h

div bl

 

push ax

add al, 30h

mov ah, 0Eh

mov bh, 00h

int 10h

pop ax 

mov al, ah

add al, 30h

mov ah, 0Eh

mov bh, 00h

int 10h

 

mov al, 3Ah

mov ah, 0Eh

mov bh, 00h

int 10h

 

xor ax, ax 

mov al, Min

mov bl, 10h

div bl

 

push ax

add al, 30h

mov ah, 0Eh

mov bh, 00h

int 10h

pop ax 

mov al, ah

add al, 30h

mov ah, 0Eh

mov bh, 00h

int 10h

 

mov al, 3Ah

mov ah, 0Eh

mov bh, 00h

int 10h

 

xor ax, ax 

mov al, Sec

mov bl, 10h

div bl

 

push ax

add al, 30h

mov ah, 0Eh

mov bh, 00h

int 10h

pop ax 

mov al, ah

add al, 30h

mov ah, 0Eh

mov bh, 00h

int 10h

 

jmp repeat

 

r_cl:

mov ax, ds   ;вывод при нажатии правой кнопки

mov es, ax

mov ah, 13h

mov al, 0

mov bl, 00000111b

mov dh, 0

mov dl, 0

mov bp, offset r_cl_St

mov cx, 11d

int 10h

 

mov ah, 02h

int 1Ah

mov Ho, ch

mov Min, cl

mov Sec, dh

 

mov ah, 02h

mov bh, 00h

mov dh, 01h

mov dl, 00h

int 10h

 

xor ax, ax 

mov al, Ho

mov bl, 10h

div bl

 

push ax

add al, 30h

mov ah, 0Eh

mov bh, 00h

int 10h

pop ax 

mov al, ah

add al, 30h

mov ah, 0Eh

mov bh, 00h

int 10h

 

mov al, 3Ah

mov ah, 0Eh

mov bh, 00h

int 10h

 

xor ax, ax 

mov al, Min

mov bl, 10h

div bl

 

push ax

add al, 30h

mov ah, 0Eh

mov bh, 00h

int 10h

pop ax 

mov al, ah

add al, 30h

mov ah, 0Eh

mov bh, 00h

int 10h

 

mov al, 3Ah

mov ah, 0Eh

mov bh, 00h

int 10h

 

xor ax, ax 

mov al, Sec

mov bl, 10h

div bl

 

push ax

add al, 30h

mov ah, 0Eh

mov bh, 00h

int 10h

pop ax 

mov al, ah

add al, 30h

mov ah, 0Eh

mov bh, 00h

int 10h

 

jmp repeat

 

exit:

mov ax, 4c00h

int 21h

main endp

end

 

Вывод: в результате выполнения данной лабораторной работы изучили функции прерывания драйвера мыши и в соответствии с вариантом  разработали программу.


Информация о работе Изучение функций прерывания драйвера мыши