Учебное пособие: Аппаратное и программное обеспечение простых микропроцессорных систем
MVIC, C, 00; счетчик = 0
SAVE: IN, NN; ввод данных из порта в А
MOVM, A; перенос данных А → ячейку ОЗУ,
адрес которой в (H+L)
INXH; (H+L) = (H+L+1)
INRC; счетчик = счетчик+1
SUI, ETX; проверка терминатора
JNZ, адрес SAVE; продолжение сбора, если не 0
DONE
Если число слов данных известно и хранится в ячейке с адресом 81N0, то программа сбора данных будет иметь вид:
LXIH, 8100;
LDA, 81N0; пересылка содержимого 81N0 → (A)
MOVC, A; счетчик = длина массива: А → (С)
SAVE: IN, NN;
MOV M, A;
INXH;
DCRC; счетчик = счетчик-1
JNZ, адрес SAVE; продолжение сбора, если не 0
DONE
Рассмотрим несколько примеров обработки массива данных.
LDACOUNT; загрузка содержимого М 8200
(COUNT) → (A)
MOVB, A; загрузка счетчика: (В) ← (А)
LXIH, 8100; запоминание в (H+L) адреса начала
массива данных
SUBA; сброс аккумулятора: (А) ← 0
ADDN: ADDM ; прибавление элемента М+(А) → (A)
INXH; переход к следующему адресу
(H+L) ← (H+L+1)