Ассемблер Это просто! Учимся программировать


ГЛАВА 07 - часть 3


/p>

Думаю, что из таблицы понятно, что F1 имеет код 3Bh, F2 - 3Ch, F3 - 3Dh и так далее...

Вот кусок программы, в которой мы проверим нажатие комбинации клавиш Shift-F4 (комбинация клавиш - в данном случае нужно нажать Shift и, не отпуская его, F4): ... (1) No_ext: (2) mov ah,10h (3) int 16h (4) cmp al,0 (5) jnz No_ext (6) cmp ah,57h (7) je Shift_f4 (8) jmp No_ext (9) Shift_f4: ...

Мы уже выяснили, что при нажатии на клавиши типа F1, Alt+F1 и т.п. в AL помещается 0, а в AH - расширенный код. В строке (4) мы это дело проверяем. В строке (5) переходим на метку No_ext, если пользователь нажал клавишу, код которой не расширенный (например: A, ф, <пробел>, <Enter> и т.п.). Т.е. мы как бы просто проигнорируем нажатую клавишу и "попросим" пользователя нажать другую.

В строке (6) проверяем, нажата ли именно комбинация клавиш Shift+F4 (не трудно высчитать ее код из приведенной выше ). Если же пользователь нажал Shift+F4, то, как не трудно догадаться, программа перейдет на метку Shift_f4 (9) (ее, естественно, можно было назвать по другому). Если пользователь нажал какую-либо иную клавишу, имеющую расширенный код, то программа опять-таки вернется на метку No_ext (8).

Резюмируем: программа продолжит работу, только если пользователь нажмет комбинацию клавиш Shift+F4.

Думаю, что вопросов быть не должно...

Вот еще одна таблица с кодами (но не расширенными; т.е. проверять нужно AL, а не AH!) часто используемых клавиш (в последствии рассмотрим остальные коды ASCII):

Enter ESC Space Tab
0Dh 1Bh 20h 09h

Все!




Начало  Назад  Вперед



Книжный магазин