Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- data segment
- data ends
- code segment
- ; выводит число из регистра AX на экран
- ; входные данные:
- ; ax - число для отображения
- ; cx - система счисления (не больше 10)
- Show_AX proc
- push ax
- push bx
- push cx
- push dx
- push di
- ;mov cx, 10 ; cx - основание системы счисления
- xor di, di ; di - кол. цифр в числе
- @@Conv:
- xor dx, dx
- div cx ; dl = num mod 10
- add dl, '0' ; перевод в символьный формат
- inc di
- push dx ; складываем в стэк
- or ax, ax
- jnz @@Conv
- ; выводим из стэка на экран
- @@Show:
- pop dx ; dl = очередной символ
- mov ah, 2 ; ah - функция вывода символа на экран
- int 21h
- dec di ; повторяем пока di<>0
- jnz @@Show
- pop di
- pop dx
- pop cx
- pop bx
- pop ax
- ret
- Show_AX endp
- start:
- mov ax, 0 ;Функция 00h предназначена для выяснения, загружен ли в память
- int 33h ;драйвер мыши. Если эта функция возвращает AX = 0, то драйвер
- test ax, ax;отсутствует. Если драйвер загружен, то AX = 0FFFFh , а в
- jz exit; регистре BX - число кнопок мыши
- mov ax, 0Ch ; реакция на события от мыши
- push cs
- pop es
- mov cx, 000001b ; [mid_off, mid_on, right_off, right_on, left_off, left_on, movement]
- mov dx, offset mouse
- int 33h
- mov ax, 1 ; Функция 01h включает изображение курсора мыши на экране.
- int 33h
- x dword 0
- main_loop:
- jmp main_loop
- mouse:
- ;mov ax, 3
- ;int 33h
- ;на выходе в bx - состояние кнопок 0,1,2 биты - левая, правая, средняя кнопка соответственно
- ;cx - x координата
- ;dx - y координата
- ;cmp dx, 100
- ;jg show_cursor
- ;jnge hide_cursor
- ;mov dl, '+'
- ;mov ah, 2h
- ;int 21h
- ;add x, 1
- ;push x
- ;pop ax
- mov eax, x
- mov ax, 1 ; поместим отображаемое число в ax
- mov cx, 10 ;основание системы счисления выводимого числа
- call Show_AX
- ;nop
- ;show_cursor:
- ;mov ax, 1
- ;int 33h
- ;jmp mouse
- ;hide_cursor:
- ;mov ax, 2
- ;int 33h
- exit:
- retf
- code ends
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement