18.07.2019, 19:20 [+3 UTC]
в нашей команде: 3 747 чел. | участники онлайн: 4 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.77 (31.05.2019)
JS-v.1.34 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
18.07.2019, 12:26

Последний вопрос:
18.07.2019, 11:30
Всего: 149936

Последний ответ:
18.07.2019, 12:04
Всего: 258705

Последняя рассылка:
17.07.2019, 22:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
11.07.2012, 11:49 »
Заречнева Вера Михайловна
спасибо [вопрос № 186440, ответ № 271332]
30.11.2009, 18:39 »
Вадим Петрович
Большое спасибо SerKuz за полную информацию! [вопрос № 174694, ответ № 257090]
28.01.2010, 11:56 »
Eliz08
Большое Вам спасибо! С уважением, Владимир. [вопрос № 176346, ответ № 259011]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 197
Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 140
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 47

Перейти к консультации №:
 

Консультация онлайн # 68952
Раздел: • Assembler
Автор вопроса: Akulыч
Отправлена: 28.12.2006, 18:55
Поступило ответов: 1

Здравствуйте уважаемые эксперты!
я столкнулся вот с какой проблемой:
в программе необходимо дожидаться нажатия клавиши. в соответствии с тем какая клавиша нажата присвоить регистрам необходимые значения и вызвать процедуру. после этого надо дождаться отпускания этой клавиши, вызвать другую процедуру и сохранить время нажатия клавиши.
Огромная просьба, помогите мне, если такой алгоритм вообще реалиzуем. ( программа нереzидентная)

Состояние: Консультация закрыта

Ответ # 134165 от ADSota

Здравствуйте, Akulыч!

Алгоритм реализуеться просто. Добавление - при запуске под чистым дос при работе нужно будет очищать буфер клавиатуры (из какой-либо своей процедуры).

CPUFREQ dd 2600;частота процессора в мегагерцах
...
in al,60h;последняя клавиша перед запуском кода
mov ah,al
wait1:
in al,60h
;просматриваем - нет ли "новой" нажатой клавиши
test al,80h
jnz wait1
cmp al,ah
je wait1
mov ah,al
push eax
;засекаем время
rdtsc
push edx eax
call yoursub1;первая ваша процедура al=скан код клавиши, если хотите ASCII код - получите с помощью функций БИОС или ДОС.
pop ecx ebx eax
wait2:
in al,60h
cmp al,ah
je wait2
rdtsc
sub edx,ebx
sub eax,ecx
div dword[CPUFREQ]
call yoursub2;вторая ваша процедура eax=время нажатия клавиши, мкс
...


Консультировал: ADSota
Дата отправки: 29.12.2006, 11:37

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.19783 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.77 от 31.05.2019
Версия JS: 1.34 | Версия CSS: 3.35