Моя программа просто не может правильно определить положение мыши.Я пробовал два случая, первый: - Нет сброса мыши - Код:
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
В этом случае положение мыши меняется.Это совсем не точно (вероятно, потому что я использую видео режим Super VGA с разрешением 800x600), но я думаю, что это можно исправить с некоторым масштабированием.Проблема в том, что всякий раз, когда я щелкаю мышью, указатель исчезает, а щелчок мыши не записывается.Тем не менее, второй щелчок записывается.Указатель мыши остается скрытым независимо от того, что я делаю (я помещаю вызов INT 33H, 1 буквально повсюду в коде, и он все еще скрывается, когда я нажимаю).Я использую Turbo GUI Assembler, любая помощь, пожалуйста?
ps Я попытался запустить исполняемый файл, используя dosbox, а не внутри GUI Assembler, те же результаты.Я тоже попробовал другой ассемблер, такой же.