Функция 00h выполняет чтение кода символа из буфера клавиатуры, если он там есть. Если буфер клавиатуры пуст, программа переводится в состояние ожидания до тех пор, пока не будет нажата какая-нибудь клавиша. Скан-код и код ASCII нажатой клавиши передаются программе.
Приведем формат вызова функции:
Регистры на входе: |
AH = 00h |
Регистры на выходе: |
AL = код ASCII символа или 0, если AH содержит расширенный код ASCII символа; AH = скан-код или расширенный код ASCII символа, если AL=0 |
Приведем таблицу скан-кодов:
01 |
Esc |
12 |
E |
23 |
H |
34 |
. > |
45 |
NumLock |
02 |
1 ! |
13 |
R |
24 |
J |
35 |
/ ? |
46 |
ScrLock |
03 |
2 @ |
14 |
T |
25 |
K |
36 |
Shift прав. |
47 |
Home [7] |
04 |
3 # |
15 |
Y |
26 |
L |
37 |
PrtSc |
48 |
Up [8] |
05 |
4 $ |
16 |
U |
27 |
; : |
38 |
Alt |
49 |
PgUp [9] |
06 |
5 % |
17 |
I |
28 |
‘ “ |
39 |
Пробел |
4A |
[-] |
07 |
6 ^ |
18 |
O |
29 |
` ~ |
3A |
CapsLock |
4B |
<- [4] |
08 |
7 & |
19 |
P |
2A |
Shift лев. |
3B |
F1 |
4C |
[5] |
09 |
8 * |
1A |
[ { |
2B |
\ | |
3C |
F2 |
4D |
-> [6] |
0A |
9 ( |
1B |
] } |
2C |
Z |
3D |
F3 |
4E |
[+] |
0B |
0 ) |
1C |
Enter |
2D |
X |
3E |
F4 |
4F |
End [1] |
0C |
- _ |
1D |
Ctrl |
2E |
C |
3F |
F5 |
50 |
Dn [2] |
0D |
= + |
1E |
A |
2F |
V |
40 |
F6 |
51 |
PgDn [3] |
0E |
Bksp |
1F |
S |
30 |
B |
41 |
F7 |
52 |
Ins [0] |
0F |
Tab |
20 |
D |
31 |
N |
42 |
F8 |
53 |
Del [.] |
10 |
Q |
21 |
F |
32 |
M |
43 |
F9 |
||
11 |
W |
22 |
G |
33 |
, < |
44 |
F10 |
Для остальных клавиш функция 00h прерывания INT 16h возвращает расширенный код ASCII:
F1 |
3b |
Shift+F1 |
54 |
Ctrl+F1 |
5e |
Alt+F1 |
68 |
F2 |
3c |
Shift+F2 |
55 |
Ctrl+F2 |
5f |
Alt+F2 |
69 |
F3 |
3d |
Shift+F3 |
56 |
Ctrl+F3 |
60 |
Alt+F3 |
6a |
F4 |
3e |
Shift+F4 |
57 |
Ctrl+F4 |
61 |
Alt+F4 |
6b |
F5 |
3f |
Shift+F5 |
58 |
Ctrl+F5 |
62 |
Alt+F5 |
6c |
F6 |
40 |
Shift+F6 |
59 |
Ctrl+F6 |
63 |
Alt+F6 |
6d |
F7 |
41 |
Shift+F7 |
5a |
Ctrl+F7 |
64 |
Alt+F7 |
6e |
F8 |
42 |
Shift+F8 |
5b |
Ctrl+F8 |
65 |
Alt+F8 |
6f |
F9 |
43 |
Shift+F9 |
5c |
Ctrl+F9 |
66 |
Alt+F9 |
70 |
F10 |
44 |
Shift+F10 |
5d |
Ctrl+F10 |
67 |
Alt+F10 |
71 |
Alt+A |
1E |
Alt+P |
19 |
Alt+3 |
7A |
Down |
50 |
Alt+B |
30 |
Alt+Q |
10 |
Alt+4 |
7B |
Left |
4B |
Alt+C |
2E |
Alt+R |
13 |
Alt+5 |
7C |
Right |
4D |
Alt+D |
20 |
Alt+S |
1F |
Alt+6 |
7D |
Up |
48 |
Alt+E |
12 |
Alt+T |
14 |
Alt+7 |
7E |
End |
4F |
Alt+S |
21 |
Alt+U |
16 |
Alt+8 |
7F |
Home |
47 |
Alt+G |
22 |
Alt+V |
2F |
Alt+9 |
80 |
PgDn |
51 |
Alt+H |
23 |
Alt+W |
11 |
Alt+- |
82 |
PdUp |
49 |
Alt+I |
17 |
Alt+X |
2D |
Alt+= |
83 |
||
Alt+J |
24 |
Alt+Y |
15 |
Ctrl+Left |
73 |
||
Alt+K |
25 |
Alt+Z |
2C |
Ctrl+Right |
74 |
||
Alt+L |
26 |
Shift+Tab |
0F |
Ctrl+End |
75 |
||
Alt+M |
32 |
Alt+0 |
81 |
Insert |
52 |
Ctrl+Home |
77 |
Alt+N |
31 |
Alt+1 |
78 |
Delete |
53 |
Ctrl+PgDn |
76 |
Alt+O |
18 |
Alt+2 |
79 |
PrintScr |
72 |
Ctrl+PgUp |
84 |