IN AL, 03h ; считывание слова состояния ККД
AND AL,07h ; определение кол-ва символов в ОЗУ клав-ры
CMP AL, 5h ;ожидание ПЯТОГО символа
JNE Klav5 ; переход на Klav5, если в буфере нет ПЯТИ символов
MOV AL, 45h ; чтение символа из ОЗУ клавиатуры
OUT 03h, AL
IN AL, 02h
MOV BL, AL ; ПРЕОБРАЗОВАНИЕ РЕЗУЛЬТАТА В 16-РИЧНУЮ ФОРМУ
MOV BH, 00h
AND AL, 07h ; в AL – номер строки
AND BL, 38h ;3 в BL – номер столбца
MUL [DI+10h] ;3 номер строки умножается на 4
ADD BX, AX ; к результату добавляется номер столбца
ADD BX, 80Bh ;4 и адрес начала таблицы
MOV AL, [BX] ; по полученному адресу считывается число,
; соответствующее нажатой клавише
MOV AH,AL
SUB BX, 0Bh ;3 ПРЕОБРАЗОВАНИЕ СИМВОЛА В КОД
MOV AL, 95h ; команда для вывода символа на индикатор
OUT 03h, AL
MOV AL, AH
XOR AH, AH
ADD BX, AX
MOV AL, [BX] ; считывание кода из таблицы
OUT 02h, AL ; вывод символа на индикатор
;A52h
MOV AL, AH
CMP AL, 0h
JE M15
CMP AL, 1h
JE M16
CMP AL, 2h
JE M17
CMP AL, 3h
JE M18
CMP AL, 4h
JE M19
CMP AL, 5h
JE M20
CMP AL, 6h
JE M21
CMP AL, 7h
JE M22
CMP AL, 8h
JE M23
ADD AL, 51h
JMP M24
M15:
ADD AL, 0h
JMP M24
M16:
ADD AL, 9h
JMP M24
M17:
ADD AL, 12h
JMP M24
M18:
ADD AL, 1Bh
JMP M24
M19:
ADD AL, 24h
JMP M24
M20:
ADD AL, 2Dh
JMP M24
M21:
ADD AL, 36h
JMP M24
M22:
ADD AL, 3Fh
JMP M24
M23:
ADD AL, 48h
M24:
XOR AH, AH
ADD DX, AX
XOR AX, AX
Klav6: ; AD4h ; работа с ШЕСТЫМ символом
IN AL, 03h ; считывание слова состояния ККД
AND AL,07h ; определение кол-ва символов в ОЗУ клав-ры
CMP AL, 6h ;ожидание ШЕСТОГО символа
JNE Klav6 ; переход на Klav6, если в буфере нет шести символов
MOV AL, 46h ; чтение символа из ОЗУ клавиатуры
OUT 03h, AL
IN AL, 02h
MOV BL, AL ; ПРЕОБРАЗОВАНИЕ РЕЗУЛЬТАТА В 16-РИЧНУЮ ФОРМУ
MOV BH, 00h
AND AL, 07h ; в AL – номер строки
AND BL, 38h ;3 в BL – номер столбца
MUL [DI+10h] ;3 номер строки умножается на 4
ADD BX, AX ; к результату добавляется номер столбца
ADD BX, 80Bh ;4 и адрес начала таблицы
MOV AL, [BX] ; по полученному адресу считывается число,
; соответствующее нажатой клавише
MOV AH,AL
SUB BX, 0Bh ;3 ПРЕОБРАЗОВАНИЕ СИМВОЛА В КОД
MOV AL, 96h ; команда для вывода символа на индикатор
OUT 03h, AL
MOV AL, AH
XOR AH, AH
ADD BX, AX
MOV AL, [BX] ; считывание кода из таблицы
OUT 02h, AL ; вывод символа на индикатор
MOV AL, AH
XOR AH, AH
ADD DX,AX
MOV [DI+6], DX ;3 заносим в ОЗУ частоту
XOR AX,AX
XOR DX,DX
Klav7: ;B2Eh ; работа с седьмым числом
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.