Алгоритм программы представлен в графической части на формате А2.
Текст программы: система отображение информация.
; Подпрограмма работы АЦП.
ADC0 EQU 000Fh.
MOV CX, ADC0; загружаем в регистр CX адрес АЦП -1.
ADCON0:
INC CX; инкрементируем CX (+1).
MOV DX, CX; устанавливаем адрес АЦП в DX.
MOV AX, FFFFh; загружаем данные в аккумулятор (AX).
OUT DX, AX; запускаем преобразование АЦП.
ADCON1:
MOV DX, 0000h; ожидание бита.
IN AL, DX; готовности АЦП.
TEST AL, 80h; если не готов,.
JNE ADCON1; то ждём.
MOV BX, DX; если данные готовы.
IN AX, DX; пересылаем в.
MOV [BX], AX; ОЗУ.
MOV AX, 001Fh.
XOR AX, CX; 16 каналов преобразовали ?
JNZ ADCON0; если нет, то проверяем следующие.
RET; возврат; Подпрограмма опроса клавиатуры.
KEY0 EQU 0030h.
MOV AX, KEY0; устанавливаем адрес.
MOV DX, AX; клавиатуры и.
IN AX, DX ;запускаем опрос.
MOV CL, 00h ;обнуляем счётчик.
KEY:
INC CL; счетчик +1.
MOV AL, 0Ah; в регистр AL -> 10.
XOR AL, CL; сравниваем AL с CL.
JZ KEYNO ;если результат =0, переходим на метку KEYNO.
RCR AX; сдвигаем регистрAX вправо.
JC KEY; проверяем флаг С, если =1, сканируем клавиатуру.
; (переход на KEY), если =0.
MOV DX, AX; сохраняем в ОЗУ.
MOV AX, KEY0; в ячейке памяти по адресу KEY0.
MOV BX, AX.
MOV [BX], DX.
RET; выход из подпрограммы.
KEYNO:
RET.
; Подпрограмма последовательного порта запись/чтение.
RS232 EQU 0050h.
RS232x EQU 0051h.
WRITE: MOV DX, RS232x.
IN AX, DX.
AND AX, 01h.
JZ WRITE.
MOV DX, RS232.
MOV BX, ADC0.
INC BX.
OUT DX,[BX].
RET.
READ: MOV DX, RS232x.
IN AX, DX.
AND AX, 02h.
JZ READ.
MOV DX, RS232.
IN AX, DX.
MOV BX, DX.
MOV [BX], AX.
RET.