МП обрабатывают разные данные.
Массивы – это набор эл – ов данных одинаковой длины, кот. расположены в области смежных ячеек памяти.
Для операций с массивами использ. 2 вида переменных:
- указатель яч. памяти POINTER ( PTR )
- счётчик, в кот. содержится индекс массива COUNTER
Пример: поиск max числа в массиве 1 – байтн. целых чисел без знака
Длина массива в ячейке LENGTH
В качестве счётчика – рег. В
Указатель памяти – рег. пара HL
Нач. адрес массива – BASE
БСА:
LDA LENGTH; пересылка длины мас.
MOV B, A ; рег. В – счётчик
LXI H, BASE ; HL – указатель памяти
NEW MAX: MOV A, M
NEXT: DCR B
JZ DONE; переход, если (В) = 0
INX H
CMP M
JC NEWMAX; если (CY) = 1
JMP NEXT
DONE: HLT; останов
Для хранения переменных можно использовать ячейки памяти (если не хватает регистров)
LXI H, BASE
SHLD PTR
LXI A, NUMBER
STA COUNT
…..
LHLD PTR; загрузить указатель памяти
LDA COUNT; загрузить счётчик
MOV B, A
…
SHLD PTR; запоминание эл – ов
MOV A, B
STA COUNT

Инициализация
LXI H, BASE
SHLD PTR; запоминание указателя памяти
MVI A, LENGTH; загрузить число эл – ов
STA COUNT; заполнить счётчик
……
CYCLE: LHLD PTR
IN PORT 1; ввод мл. б. кода АЦП
MOV M, A
INX H
IN PORT 2; ввод ст. б. кода АЦП
ANI 00000011 B, выделить разр. D1, D0
MOV M, A
INX H
SHLD PTR
LDA COUNT
PCR A
STA COUNT
INZ CYCLE
DONE: