Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2015, 07:00   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
в коде выше, я в DX указывал адрес
Ну. Верно )
Ты в DX закинул адрес. Мышка его схавала. Все. DX свободен. Он будет мышкой использоваться для возврата значений.
Цитата:
если сразу взвести биты на обе кнопки (00001010=10d) тогда куда заносить адрес обработчика правого буттона?
Обработчик один. И в нем проверяется любая реакция. В функцию в ВХ будут переданы биты нажатия и отпущения.Мышка тоже возвращает битовую маску.
Проверяй в ВХ биты согласно спецификации:
Код:
test bx,1
 jz Нажата левая
 jnz Отпущена левая
test bx,2
 jz Нажата правая
 jnz Отпущена правая
Это если я не ошибаюсь в том как test работает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.04.2015, 00:26   #12
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Незнаю, зачем мышка досу, но дурная голова - рукам покоя не даёт.
Вот чё удалось настряпать.. Криво/косо, но вроде работает (может кому пригодится).

Функция(0) - инициализация:
Код:
use16
org 100h
jmp start
  ok  db ' Test mouse: ...OK!$'
  bad db ' Test mouse: ...Not connected$'
start:
    mov  ax,0 
    int  33h
    cmp  ax,0      ; проверка на ошибку
    je   no1

    mov  dx,ok     ; мессага 'OK'
    call message   ; вызов функции
ret
no1:
    mov  dx,bad    ; мессага 'BAD'
    call message
ret
message:           ; функция
    mov  ah,9
    int  21h
    xor  ax,ax     ; выход
    int  16h
ret
Функция(4) - установить позицию указателя:
Код:
jmp start
  poss  db 13,10,' Mouse position(X-Y): Bottom-Center $'
start:
; =================; графический режим (640х480)
    mov  ax,12h
    int  10h
; =================; функция(0)
    mov  ax,0      ; инициализация мыши
    int  33h
    mov  ax,1      ; показать/спрятать указатель
    int  33h
; =================; функция(4)
    mov  ax,4      ; установить позицию указателя
    mov  cx,320    ; координата-Х
    mov  dx,450    ; координата-Y
    int  33h
; =================; юзер-инфо, выход
    mov  dx,poss
    call message
    xor  ax,ax
    int  16h
ret
; =================; функция вывода на экран
message:           
    mov ah,9
    int 21h
ret
Функции(5/6) - инфо о нажатии кнопки:
Код:
jmp start
  info  db 13,10,' Button info..'
        db 13,10,' ----------------------------$'
  lBtn  db 13,10,' Pressed LEFT button $'
  rBtn  db 13,10,' Pressed RIGHT button $'
start:
; =================; графический режим (640х480)
    mov  ax,12h
    int  10h
; =================; юзер-инфо
    mov  dx,info
    call message
; =================; инициализация мыши/указателя
    mov  ax,0
    int  33h
    mov  ax,2      ; спрячем указатель
    int  33h
; =================; функция(5). Инфо о нажатии клавиш
fn_5:
    mov  ax,5
    xor  bx,bx     ; BX=0 (тест левого буттона)
    int  33h
    cmp  ax,1      ; бит 0 установлен?
    jne  fn_5      ; если нет - мотаем функцию(5)

    mov  dx,lBtn   ; ..да - мессага.
    call message
; =================; функции(6). Инфо об отжатии клавиш
fn_6:
    mov  ax,6
    mov  bx,1      ; BX=1 (тест правого буттона)
    int  33h
    cmp  ax,2      ; проверка отжатия
    jne  fn_6

    mov  dx,rBtn   ; мессага
    call message
; =================; выход по-клавише
    xor  ax,ax
    int  16h
ret
message:           ; функция вывода на экран
    mov ah,9
    int 21h
ret
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с мышью qwe12355 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 27.10.2012 16:21
РАбота с Мышью serg90 Работа с сетью в Delphi 5 19.02.2011 14:25
[C++] Работа с мышью koshkarjov Помощь студентам 0 14.10.2010 22:36
работа с мышью! _Timon Помощь студентам 1 20.01.2009 23:29