Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Посчитать сколько прошла мышка


Рекомендуемые сообщения

Нужно посчитать сколько прошла мышь по экрану в пикселах.

Что я думаю: точность особая не требуется, поэтому считаю, что сойдет прерывание от таймера 18,5 раз в секунду (1сh).

В обработчике прерывания использую функцию 03h прерывания мыши int 33h, которая возвращает текущие координаты мыши (сх - х координата dx - у координата).

Примерно так:

pixeli proc

mov ax,03h

int 33h

push cx

push dx

cmp cx,x_pr

jg met1

sub x_pr,cx;

mov ax,x_pr;

jmp met1_

met1:

sub cx,x_pr;

mov ax,cx;

met1_:

cmp dx,y_pr

jg met2

sub y_pr,dx;

mov bx,y_pr;

jmp met2_

met_2:

sub dx,y_pr;

mov bx,dx;

met2_:

pop y_pr;

pop x_pr;

add ax,bx;

add put,ax;;

ret

pixeli endp

Вопросы:

1. По большому счету надо бы корень квадратный из суммы квадратов изменений координат извлекать. Как это проще сделать?

2. Может произойти переполнение переменной put, как изменить (я думаю можно отдельно считать сотни, тысячи и т.д.)

3. Как потом вывести путь пройденный мышью в десятичном формате (ну не путь, а пробег что ли!)

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...