Сборка получить положение мыши (TASM) - PullRequest
0 голосов
/ 03 декабря 2018

Моя программа просто не может правильно определить положение мыши.Я пробовал два случая, первый: - Нет сброса мыши - Код:

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

...