Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
kolorimage
6 / 6 / 0
Регистрация: 16.09.2010
Сообщений: 86
1

Некорректно работает программа (мышь + вывод на дисплей)

16.09.2010, 18:58. Просмотров 1178. Ответов 10
Метки нет (Все метки)

Здравствуйте господа!
У меня проблема с программой, очень нужна помощь .
Программа должна работать следующим образом:
при нажатии на экране, в том месте появляется символ "l" .
Но моя программа только выводить знак "=" в одном и том же месте ..

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
; mouse test
 
data segment
   
    a db 'l'  ;вот это должно выводится
    x db 0   ;координата х и у соответственно 
    y db 0
ends
name "mouse"
 
org 100h
 
start:
mov ah,00h
mov al,03h
int 10h
mov ax, 1
int 33h
 
bb:
check_mouse_buttons:
mov ax, 3
int 33h  
mov x,cl 
mov y,dl
cmp bx, 1  ; если нажата левая кнопка мыши
je  displey
jmp bb 
 
displey: 
 
mov ah,13h
mov al,0
mov bl,00100100b
mov cx,1
mov bp, offset a 
mov dh,offset x
mov dl,offset y
int 10h
 jmp bb
endp
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2010, 18:58
Ответы с готовыми решениями:

Некорректно работает программа
Добрый вечер ! мне нужно найти произведение всех нечетных элементов массива ,...

Вывод на дисплей цифр по таймеру
Вывод на дисплей цифр по таймеру Через каждую секунду добавлять в первую...

Вывод на дисплей одного из трех текстовых сообщений, в зависимости от нажатой клавиши.
Здравствуйте. Помогите пожалуйста выполнить задание по Assembler'у. Тема...

Программа в досе определяет мышь и рисует линии от предидущего щелчка к следующему
Вообще прошу помощи по написанию программы, точнее если быть точным по...

VMWARE WORKSTATION и игры: мышь работает некорректно
Всем привет... помогите пожалуйста разобраться ! Установил VMWARE WORKSTATION...

10
Tronix
157 / 104 / 6
Регистрация: 22.08.2010
Сообщений: 215
16.09.2010, 19:09 2
В строчке 37 и 38 не должно быть слова offset. Мы же передаем не указатель, а сами значения переменных. Дальше не смотрел.
1
kolorimage
6 / 6 / 0
Регистрация: 16.09.2010
Сообщений: 86
16.09.2010, 19:15  [ТС] 3
Цитата Сообщение от Tronix Посмотреть сообщение
В строчке 37 и 38 не должно быть слова offset. Мы же передаем не указатель, а сами значения переменных. Дальше не смотрел.
вот ..поменял.
уже символы ставятся, но присутствует смещение, то есть символы появляются намного левее чем был нажат курсор
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
; mouse test
 
data segment
   
    a db 'l'  
    x db 0
    y db 0
ends
name "mouse"
 
org 100h
 
start:
mov ah,00h
mov al,03h
int 10h
 
mov ax, 1
int 33h
bb:
check_mouse_buttons:
mov ax, 3
int 33h  
mov x,cl
mov y,dl
shr y,3
shr x,3
cmp bx, 1  ; both buttons
je  hide
jmp bb 
 
 hide: 
 
mov ah,13h
mov al,0
mov bl,00100100b
mov cx,1
mov bp, offset a 
mov dh,y
mov dl,x
int 10h
 jmp bb
endp
0
Tronix
157 / 104 / 6
Регистрация: 22.08.2010
Сообщений: 215
16.09.2010, 19:25 4
Функция 3h прерывания 33h возвращает для текстового режима "виртуальные" координаты. Чтобы получить обычные X и Y, нужно оба значения в CX и DX поделить на 8. То есть после 23 строки нужно вставить что-то типа
Assembler
1
2
shr cx,3
shr dx,3
1
kolorimage
6 / 6 / 0
Регистрация: 16.09.2010
Сообщений: 86
16.09.2010, 19:42  [ТС] 5
ОО)
Спасибо..работает.
А еще один вопрос..
я делаю эту программку в EMU8086, и она отлично работает, но когда я компилирую ее или в этом ему или в тасме то у виндовс ХР работать ничего не хочет. Почему?
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
; mouse test
 
data segment
   
    a db 'l'  
    x db 0
    y db 0
ends
name "mouse"
 
org 100h
 
start:
mov ah,00h
mov al,03h
int 10h
 
mov ax, 1
int 33h
bb:
check_mouse_buttons:
mov ax, 3
int 33h
shr cx,3
shr dx,3  
mov x,cl
mov y,dl  
 
cmp bx, 1  ; both buttons
je  hide
jmp bb 
 
 hide: 
 
mov ah,13h
mov al,0
mov bl,00100100b
mov cx,1
mov bp, offset a 
mov dh,y
mov dl,x
int 10h
 jmp bb
endp
0
Tronix
157 / 104 / 6
Регистрация: 22.08.2010
Сообщений: 215
16.09.2010, 19:45 6
Не знаю, у меня в WinXP sp3 работает в виндах. А что TASM говорит? Выдает ошибки или все нормально компилирует, но когда запускаеш прогу - черное окно и все?
1
kolorimage
6 / 6 / 0
Регистрация: 16.09.2010
Сообщений: 86
16.09.2010, 19:50  [ТС] 7
Компилирует без ошибок, при запуске черное окно и все, я щелкаю по нему но ставится символ не хочет..
0
Tronix
157 / 104 / 6
Регистрация: 22.08.2010
Сообщений: 215
16.09.2010, 20:03 8
Цитата Сообщение от kolorimage Посмотреть сообщение
Компилирует без ошибок, при запуске черное окно и все, я щелкаю по нему но ставится символ не хочет..
Мммм... А какая венда? Не семерка случайно? А так не знаю, может проверить свойства - иногда по умолчанию стоит выделение области экрана мыши. Если ее отключить - должно работать.
Ну или остается DosBox.
1
Миниатюры
Некорректно работает программа (мышь + вывод на дисплей)  
kolorimage
6 / 6 / 0
Регистрация: 16.09.2010
Сообщений: 86
16.09.2010, 20:13  [ТС] 9
у меня винда7 на ней стоит VM Ware WS на а на ней уже вин ХР)
у меня в этом окне есть возможность выделять экран..
пробовал открыть свойства нтвдм.ехе но я не могу найти свойство выделения..
0
Tronix
157 / 104 / 6
Регистрация: 22.08.2010
Сообщений: 215
16.09.2010, 20:28 10
Цитата Сообщение от kolorimage Посмотреть сообщение
у меня винда7 на ней стоит VM Ware WS на а на ней уже вин ХР)
у меня в этом окне есть возможность выделять экран..
пробовал открыть свойства нтвдм.ехе но я не могу найти свойство выделения..
Не-не, запускаеш прогу - появляется окно с черным экраном, в самом верху в левом углу окна есть маленькая иконка. Клацаеш по ней левой и выбираешь свойства.
1
Миниатюры
Некорректно работает программа (мышь + вывод на дисплей)  
kolorimage
6 / 6 / 0
Регистрация: 16.09.2010
Сообщений: 86
16.09.2010, 20:41  [ТС] 11
ООО!
Спасибо большое!
все отлично работает!
1
16.09.2010, 20:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2010, 20:41

Мышь работает через раз, то есть запустил ОС - мышь не работает, перезагрузил - мышь работает
Установлена Windows 7 со всеми последними обновлениями. Все всегда замечательно...

вывод 8 строк на дисплей Nokia5110 под ATmega. Всё работает
Всем доброго времени суток!!! Программирую не первый десяток лет, паяю – еще...

Некорректно работает программа
Когда нет файла настроек (cfg) программа ставит флаг на пункте "Выход" и...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru