Guest User

Untitled

a guest
Sep 30th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. data segment
  2. data ends
  3.  
  4. code segment    
  5. start:
  6.     mov ax, 0 ;Функция 00h предназначена для выяснения, загружен ли в память
  7.     int 33h ;драйвер мыши. Если эта функция возвращает AX = 0, то драйвер
  8.     test ax, ax;отсутствует. Если драйвер загружен, то AX = 0FFFFh , а в
  9.     jz exit; регистре BX - число кнопок мыши
  10.    
  11.     mov ax, 0Ch ; реакция на события от мыши
  12.     push cs
  13.     pop es
  14.     mov cx, 000001b ; [mid_off, mid_on, right_off, right_on, left_off, left_on, movement]
  15.     mov dx, offset mouse
  16.     int 33h
  17.    
  18.     mov ax, 1 ; Функция 01h включает изображение курсора мыши на экране.
  19.     int 33h
  20.  
  21. main_loop:
  22.     jmp main_loop
  23.  
  24. mouse:
  25.     mov ax, 3
  26.     int 33h
  27.     ;на выходе в bx - состояние кнопок 0,1,2 биты - левая, правая, средняя кнопка соответственно
  28.     ;cx - x координата
  29.     ;dx - y координата    
  30.     cmp dx, 100
  31.     jg show_cursor
  32.     jnge hide_cursor
  33.    
  34. show_cursor:
  35.     mov ax, 1
  36.     int 33h
  37.     jmp mouse
  38.  
  39. hide_cursor:
  40.     mov ax, 2
  41.     int 33h
  42.    
  43. exit:
  44.     retf
  45.    
  46. code ends
  47. end start
Advertisement
Add Comment
Please, Sign In to add comment