Автор работы: Пользователь скрыл имя, 19 Декабря 2013 в 11:57, лабораторная работа
Цель работы: Изучить функции прерывания драйвера мыши 33h и в соответствии с индивидуальным заданием разработать алгоритм и программу, работающую с манипулятором типа «мышь», используя прерывание 33h.
Задание: Определение нажатия любой кнопки мыши и вывод на экран времени нажатия.
Вывод: в результате выполнения данной лабораторной работы изучили функции прерывания драйвера мыши и в соответствии с вариантом разработали программу.
Вариант 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
Вывод: в результате выполнения данной лабораторной работы изучили функции прерывания драйвера мыши и в соответствии с вариантом разработали программу.
Информация о работе Изучение функций прерывания драйвера мыши