IN AL, 03h ; считывание слова состояния ККД
AND AL,07h ; определение кол-ва символов в ОЗУ клав-ры
CMP AL, 7h ; ожидание СЕДЬМОГО символа
JNE Klav7 ; переход на Klav7, если в буфере НЕТ семи символов
MOV AL, 47h ; чтение символа из ОЗУ клавиатуры
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] ; по полученному адресу считывается число,
; соответствующее нажатой клавише
CMP AL, 2h
JA Res ; если больше то на Res
MOV [DI+2], AL ;3 заносим в ОЗУ режим работы
MOV AL, С1h ; сброс ККД
OUT 03h, AL
XOR AX, AX
XOR DX, DX
;---------------------------РАБОТА С ТАЙМЕРОМ----------------------------B6Bh: ; вычисление константы пересчёта
MOV AX, 1388h ;3 загрузка числа 5000
MOV DX, [DI+6] ;3 загрузка из памяти частоты
DIV DX
MOV DX, 30C0h :3
SUB AX, DX
MOV DX, 0F0h ;3
DIV DX
XOR DX, DX
MOV DL, AL
MOV AL,34h ; инициализация таймера
OUT 08h, AL
MOV AL, DL ; загрузка константы пересчёта
OUT 08h, AL ; в таймер
;определение режима работы
MOV AL, [DI+2] ;3
CMP AL, 0h
JE M25
CMP AL, 1h
JE M26
MOV BX, 100h ;3 по этому адресу к примеру лежат выборки синуса
JMP M27
M25: ;BA5h
MOV BX, 200h ;3
JMP M27
M26:
MOV BX, 300h ;3
M27:
STI ;1 разрешение прерывания
HLT ;1
CIKL:
MOV SI, 0000h ;3
HLT ;1 ожидание прерывания
;;Начало подпрограммы обработки прерывания
BB3h: DEC SP ;1 уменьшение содержания
DEC SP ;1 стека
DEC SP ;1 чтобы не было
DEC SP ;1 переполнения
DEC SP ;1
INC BX ;1 N=N+1
MOV AL, [SI] ; загрузка очередного отсчёта в аккумулятор
MOV DL, [DI+4] ;3
MUL DL
OUT 04h, AL ; вывод текущего отсчёта на ЦАП
IN AL, 03h ; считывание слова состояния ККД
AND AL,07h ; определение кол-ва символов в ОЗУ клав-ры
CMP AL, 0h ;ожидание первого символа
JNE Res ; переход на RES
CMP SI, 0h ;3 N>240?
JA CIKL ; переход на CIKL если N>240
HLT ;1
; BD0
7F:
BB3h
0000h
1F0h:
JMP 00000815h ; переход на основную программу
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.