Программа MASM по щелчкам мыши - PullRequest
0 голосов
/ 17 ноября 2018

Напишите и протестируйте программу MASM для ожидания щелчков левой кнопкой мыши и отображения текстовой строки в точном месте щелчка в клиентской области. Я знаю, что координаты мыши могут быть найдены к 03h, 33h, но она возвращает 16-битную позицию. Я написал код путем аппроксимации, но он не работает.

;3. Write and test a MASM program to wait for left mouse clicks 
;and display a text string at the exact clicked spot in the client area.
include mtab.asm

.model small .stack 100h

.data
prompt db "Hello$"

.code
main proc

mov ax,@data
mov ds,ax

@input:
    mov ax,13h
    int 13h

    mov ah,03h  ; bx has left or right cx (ho) dx (ver) has coordinates
    int 33h

    and bx,1
    ; jz @input

    ;left mouse clicked then set coordinates and print text
    shr cx,1
    shr cx,1
    shr cx,1
    shr cx,1

    or dx,cx

    mov ah,13h
    mov al,01h
    mov bh,00h
    mov bl,00h

    lea bp,prompt
    mov cx,5
    int 10h

exitp

main end
end main
...