Напишите и протестируйте программу 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