С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
1 / 1 / 1
Регистрация: 28.11.2010
Сообщений: 14
TASM

Вывод координат мыши на экран

30.10.2011, 20:16. Показов 3324. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, вот часть задачи работы с мышью. Кто может помочь оптимизировать процедуру proc (выведение координат мыши на экран)

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
SST SEGMENT STACK "STACK"
    DW 10 DUP (?)
SST ENDS
DAT SEGMENT
soob1 db "levaya knopka", 0ah,0dh,"$"
soob2 db "pravaya knopka", 0ah,0dh,"$"
soob3 db "obe knopki", 0ah,0dh,"$"
soob4 db " koordinata x", 0ah,0dh,"$"
soob5 db " koordinata y", 0ah,0dh,"$"
DAT ENDS
COD SEGMENT
assume ss:sst, ds:dat, cs:cod
 
procedura proc
mov bx,dx
mov ax,cx 
mov dl,100
div dl
push ax   
xor dx,dx
mov dl,al
add dx,30h   
mov ah,2h
int 21h
          
pop ax
mov al,ah
xor ah,ah 
mov dl,10
div dl 
push ax
xor dx,dx
mov dl,al
add dx,30h   
mov ah,2h
int 21h
                      
pop ax
xor dx,dx
mov dl,ah
add dx,30h
mov ah,2h
int 21h    
               
lea dx,soob4
mov ah,9h
int 21h   
         
mov ax,bx
mov dl,100
div dl
push ax   
xor dx,dx
mov dl,al
add dx,30h   
mov ah,2h
int 21h
          
pop ax
mov al,ah
xor ah,ah 
mov dl,10
div dl 
push ax
xor dx,dx
mov dl,al
add dx,30h   
mov ah,2h
int 21h
                   
pop ax
xor dx,dx
mov dl,ah
add dx,30h
mov ah,2h
int 21h
 
lea dx,soob5
mov ah,9h
int 21h
ret
procedura endp  
 
....
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2011, 20:16
Ответы с готовыми решениями:

Вывод координат мыши на экран
Задача в названии, на emu8086 нужно сделать вывод координат мыши в консоль или куда-то еще Нашел рабочий код, но у меня он на эмуляторе...

Вывод координат в процессе перемещения мыши
Здравствуйте. Помогите пожалуйста разобраться. Нашёл пример, который выводит координаты мышки х и у. Не могу понять часть кода,...

Вывод координат мыши в левом верхнем углу экрана
Подскажите, как исправить: координаты и сообщения мигают на экране (постоянно идет обработка). И как поставить вывод в левый верхний...

3
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16372 / 7684 / 1080
Регистрация: 11.11.2010
Сообщений: 13,758
31.10.2011, 09:35
zhu4koff, как-то так
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
; masm dos com #
;при нажатии левой кнопки мышки выводятся координаты места где было нажатие.
.286
.model tiny
.code
org 100h
start:  mov ax,3;текстовый режим 80х25 символов, если учесть размер символа
    int 10h;8х8 соответствует графическому режиму 640х200
    mov dx,offset string1;выводим сообщение как выйти из программы
    mov ah,9
    int 21h
    mov ax,0;Функция 00h предназначена для выяснения, загружен ли в память 
    int 33h;драйвер мыши. Если эта функция возвращает AX = 0, то драйвер 
    test ax,ax;отсутствует. Если драйвер загружен, то AX = 0FFFFh , а в 
    jz exit;регистре BX - число кнопок мыши
    mov ax,0Ch;Функция 0Ch позволяет программно задать реакцию на события 
    push cs;связанные с мышью: ее перемещения, нажатие и отпускание кнопок. 
    pop es;События, на которые необходимо реагировать, должны быть отмечены 
    mov cx,2;единицами в соответствующих разрядах регистра CX. CX=2 - вызвать подпрограмму, 
    mov dx,offset mouse;если левая клавиша отпущена. После выполнения этой 
        int 33h;функции драйвер мыши на каждое из заданных событий будет 
;реагировать вызовом обработчика событий - подпрограммы, FAR-указатель на адрес 
;которой был указан в регистрах ES:DX
    mov ax,1;Функция 01h включает изображение курсора мыши на экране.
        int 33h
    xor ax,ax;ждем пока не нажмут на клавиатуру
    int 16h
exit:   int 20h;завершаем программу
mouse proc far
    push cs
    pop ds
    push 0B800h
    pop es
    mov ax,cx;в CX и DX - координаты курсора
    mov di,dx;в DI будут координаты надписи
    shl di,2;di=dx*4
    add di,dx;di=dx*5
    shl di,2;di=dx*20
    shr cx,2
    add di,cx;di=dx*20+cx/4
    mov bl,10
    div bl
    or ah,30h
    mov string[4],ah
    aam
    add ax,3030h
    mov string[2],ah
        mov string[3],al
    mov ax,dx
    div bl
    or ah,30h
    mov string[10],ah
    aam
    add ax,3030h
    mov string[8],ah
        mov string[9],al
    mov ax,3;стираем с экрана предыдущую надпись
    int 10h
    mov si,offset string
    mov cx,string1-string;длина надписи
    mov ah,0Fh;аттрибуты надписи (белое на черном)
@@: lodsb
    stosw;выводим координаты на экран в заданную позицию
    loop @b
    retf
mouse endp
string db "x=    y=   "
string1 db "для выхода из программы нажмите на Esc$"
end start
2
1 / 1 / 1
Регистрация: 28.11.2010
Сообщений: 14
31.10.2011, 09:48  [ТС]
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
procedura proc
mov bx,dx
mov ax,cx 
mov dl,100
div dl
push ax   
xor dx,dx
mov dl,al
add dx,30h   
mov ah,2h
int 21h
          
pop ax
mov al,ah
xor ah,ah 
mov dl,10
div dl 
push ax
xor dx,dx
mov dl,al
add dx,30h   
mov ah,2h
int 21h
                      
pop ax
xor dx,dx
mov dl,ah
add dx,30h
mov ah,2h
int 21h    
               
lea dx,soob4
mov ah,9h
int 21h   
         
mov ax,bx
mov dl,100
div dl
push ax   
xor dx,dx
mov dl,al
add dx,30h   
mov ah,2h
int 21h
          
pop ax
mov al,ah
xor ah,ah 
mov dl,10
div dl 
push ax
xor dx,dx
mov dl,al
add dx,30h   
mov ah,2h
int 21h
                   
pop ax
xor dx,dx
mov dl,ah
add dx,30h
mov ah,2h
int 21h
 
lea dx,soob5
mov ah,9h
int 21h
ret
procedura endp
а проще никак нельзя это написать? просто не совсем понял про string.ю\ можете сказать откуда код программы, может там есть пояснения
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16372 / 7684 / 1080
Регистрация: 11.11.2010
Сообщений: 13,758
31.10.2011, 10:05
Ну ты, блин, даешь... Вопрос был
Цитата Сообщение от zhu4koff
Кто может помочь оптимизировать процедуру proc
проще уже некуда, программы, извини, пишу сам, комментариев там достаточно, программа рабочая, тебе осталось только разобраться, учебник в руки и вперед!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.10.2011, 10:05
Помогаю со студенческими работами здесь

При опросе координат курсора и состояния кнопок мыши (int 33h ax=0003h), значение координат не изменяется
Не пойму в чём проблема. Графический режим, прога ждёт нажатия левой кнопки, после этого в регистры CX и DX автоматически помещается...

Вывод на экран координат мыши
ает using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Вывод координат курсора мыши на экран
Доброго времени суток, друзья! Будьте добры, помогите мне сделать одну полезную штучку - вывод координат на экран. В общем, суть такая: я...

Вывод координат курсора мыши
Требуется реализовать следующую простую задачу: перемещаем курсор по редактору формы (textEdit) и его координаты (курсора) должны...

вывод координат курсора мыши
Здравствуйте. Нужно сделать чтобы в строке состояния браузера (IE), при нажатой кнопки мыши и перетаскивании курсора показывались...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru