Бумер Опубликовано 28 мая, 2008 Жалоба Поделиться Опубликовано 28 мая, 2008 Нужно посчитать сколько прошла мышь по экрану в пикселах. Что я думаю: точность особая не требуется, поэтому считаю, что сойдет прерывание от таймера 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. Как потом вывести путь пройденный мышью в десятичном формате (ну не путь, а пробег что ли!) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти