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

0 ответов

Другие вопросы по тегам