powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Обработка одновременного нажатия двух кнопок мыши (Assrmbler)
3 сообщений из 3, страница 1 из 1
Обработка одновременного нажатия двух кнопок мыши (Assrmbler)
    #39079662
grey.lam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть задача по левой клавише мыши рисовать пиксель, по правой - менять цвет (+1 по коду), по обеим - выходить из программы.
Первые два пункта реализованы, а вот как сделать третий понять не могу.
Прошу помощи.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
.model tiny
.code
org 100h
start:
mov ax,12h ;установка видеорежима 640х480, 16 цветов
int 10h
mov ax,0
int 33h
mov ax,0Ch
mov cx,0Ah
mov dx,offset mouse
int 33h
mov ax,1
int 33h
;блок выхода по нажатия любой кнопки клавиатуры
mov ah,0
int 16h
mov ax,0Ch
mov cx,00h
int 33h
mov ax,3
int 10h 
int 20h
;обработка нажатия кнопки мыши
proc mouse
test bx,01b ;нажата ли правая клавиша
jnz left ;нажали на левую клавишу
inc color ; обработка нажатия правой клавиши
retf
endp
left: ; обработка нажатия левой клавиши
mov	ax,2
int	33h
mov	ah,0ch
mov	al, color
int	10h
mov	ax,1
int	33h
retf
color db 10b
end start
...
Рейтинг: 0 / 0
Обработка одновременного нажатия двух кнопок мыши (Assrmbler)
    #39079772
RWolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавить сравнение с правой кнопкой и с обеими. Выход из приложения - int 21h с ah=4C.
...
Рейтинг: 0 / 0
Обработка одновременного нажатия двух кнопок мыши (Assrmbler)
    #39080857
grey.lam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался сам. Нужно использовать не test, а cmp.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
.model tiny
.code
org 100h
start:
mov ax,12h ;установка видеорежима 640х480, 16 цветов
int 10h
mov ax,0 ;инициализация драйвера мыши
int 33h
mov ax,0Ch ;считываем нажатие клавиши мыши
mov cx,0Ah
mov dx,offset mouse ;вызываем обработчик
int 33h
mov ax,01h ;показать курсор
int 33h
mov ah,0 ;выход по клавиатуре
int 16h 
exit:
mov ax,0Ch ;сброс обработчика мыши
mov cx,00h
int 33h
mov ax,3 ;установка текстового режима
int 10h 
mov ah,4Ch ;выход из программы
int 21h

proc mouse
cmp bx,01b ;нажата ли левая клавиша?
je left ;нажали на левую клавишу
cmp bx,11b ;нажаты ли обе клавиши?
je exit ;выход по нажатию двух клавиш
inc color ; обработка нажатия правой клавиши
retf
endp

left: ; обработчик нажатия левой клавиши
mov ax,02h ;спрятать курсор
int 33h
mov ah,0ch ;вывести точку
mov al, color ;заданного цвета
int 10h
mov ax,01h ;показать курсор
int 33h
retf ;возврат к месту вызова

color db 2h ;первоначальный цвет
end start
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Обработка одновременного нажатия двух кнопок мыши (Assrmbler)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]