1 / 1 / 1
Регистрация: 28.11.2010
Сообщений: 14
TASM

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

30.10.2011, 20:16. Показов 3362. Ответов 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___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
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___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru