Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2008, 15:02   #1
format
 
Регистрация: 31.08.2007
Сообщений: 8
По умолчанию Нажатие клавиши

Суть проблемы такова: есть цикл бесконечный, который постоянно проверяет определённые данные. Выйти из него нужно по нажатию на Esc.
Простой ввод разумеется не подойдёт, т.к. цикл будет прерываться, ожидая ввода. В паскале было вроде что-то типа if (keypressed) then .
Как реализовать проверку нажатия клавиши без остановки цикла?
format вне форума Ответить с цитированием
Старый 05.05.2008, 15:25   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Под досом - Int 16h, функция 01h
Цитата:
INT 16 - KEYBOARD - READ CHAR FROM BUFFER, WAIT IF EMPTY
AH = 00h
Return: AH = scan code
AL = character
Note: on extended keyboards, this function discards any extended keystrokes,
returning only when a non-extended keystroke is available
SeeAlso: AH=01h,10h
---------------------------------------------
INT 16 - KEYBOARD - CHECK BUFFER, DO NOT CLEAR
AH = 01h
Return: ZF clear if character in buffer
AH = scan code
AL = character
ZF set if no character in buffer
SeeAlso: AH=00h,11h
Или сравнение адресов головы и хвоста буфера клавиатуры ( по адресам 0040:001A и 0040:001C) Если адреса не равны, значит символ в очереди есть и его можно читать через Int 16, функция 0, или напрямую из буфера.
B_N вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перехватить нажатие клавиши Windows? UnD)eaD)Snake Win Api 3 16.03.2009 18:21
Нажатие клавишь Slash Общие вопросы Delphi 2 06.06.2008 08:15
Клавиатура, нажатие клавиши Yogik™ Помощь студентам 4 21.11.2007 00:05
Нажатие клавиш VanDerKeen Win Api 1 03.06.2007 21:13