Как выводить символ на экран в место где была нажата мышь в assembler?

У меня есть полудоделанная лабораторная работа по этому задания: Разработать программу, выводящую символ «%» в позицию, в которой происходит отпускание правой клавиши мыши и символ «@» в позиции, в которой происходит отпускание левой клавиши мыши. Но у меня выводится просто символы на весь экран, а нужно только в том месте гед нажата мышь, не знаю как >сделать

Программа которая у меня есть

   .model small
.stack 100h

.data
cursor_pos_x dw ?
cursor_pos_y dw ?
msg1 db '%$'
msg2 db '@$'

.code
start:
    mov ax, @data
    mov ds, ax
    
    ; инициализация прерывания INT 33h для обработки событий мыши
    mov ax, 0h
    int 33h
    
    ; бесконечный цикл ожидания событий мыши
    wait_for_mouse_event:
        ; ожидание событий мыши
        mov ax, 3h
        int 33h
        
        ; проверка кода события мыши
        cmp bx, 02h ; отпускание правой клавиши мыши
        je right_mouse_button_up
        
        cmp bx, 01h ; отпускание левой клавиши мыши
        je left_mouse_button_up
        
        jmp wait_for_mouse_event ; ожидание следующего события мыши
        
    right_mouse_button_up:
        ; сохранение координат курсора
        mov cursor_pos_x, cx
        mov cursor_pos_y, dx
        
        ; вывод символа "%"
        mov ah, 09h
        lea dx, msg1
        int 21h
        
        jmp wait_for_mouse_event ; ожидание следующего события мыши
        
    left_mouse_button_up:
        ; сохранение координат курсора
        mov cursor_pos_x, cx
        mov cursor_pos_y, dx
        
        ; вывод символа "@"
        mov ah, 09h
        lea dx, msg2
        int 21h
        
        jmp wait_for_mouse_event ; ожидание следующего события мыши
        
end start

Ответы (0 шт):