Сборка получить положение мыши (TASM)
Моя программа просто не может правильно определить положение мыши. Я пробовал два случая, первый: - Нет сброса мыши - Код:
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, те же результаты. Я тоже попробовал другой ассемблер, тоже самое.