我的程序无法正确获取鼠标位置。 我尝试了两种情况,第一种: -没有鼠标重置 -代码:
WAIT_FOR_CLICK:
; CHECK IF THE MOUSE IS CLICKED
MOV AX,3H
MOV BX, 0
INT 33H
CMP BX, 0
JZ WAIT_FOR_CLICK
; DISPLAY CLICK POSITION
MOV AL, 5
MOV AH, 0CH
INT 10H
无论我在哪里单击,这种情况下总是产生相同的坐标。
第二种情况,使用鼠标重置:
; RESET THE MOUSE
MOV AX, 0
INT 33H
; SHOW THE MOUSE POINTER
MOV AX, 1
INT 33H
WAIT_FOR_CLICK:
; CHECK IF THE MOUSE IS CLICKED
MOV AX,3H
MOV BX, 0
INT 33H
CMP BX, 0
JZ WAIT_FOR_CLICK
MOV AL, 5
MOV AH, 0CH
INT 10H
在这种情况下,鼠标位置会有所不同。它根本不准确(可能是因为我使用的是800x600分辨率的超级VGA视频模式),但我认为可以通过一定的缩放比例来解决。问题是,每当我单击鼠标时,指针就会消失并且不会记录鼠标单击。但是,记录第二次单击。无论执行什么操作,鼠标指针都保持隐藏状态(我在代码中的任何地方都将INT 33H,1的调用置为1,单击仍将其隐藏)。 我正在使用Turbo GUI汇编程序,请帮忙吗?
p.s我尝试使用dosbox而不是在GUI汇编器中运行可执行文件,结果相同。我还尝试了其他不同的汇编器。