Цифровые устройства и микропроцессорные системы. Задачи и упражнения: Учебное пособие (Представление чисел и арифметические операции в цифровых устройствах. Микропроцессорные устройства и системы на базе МП КР580ВМ80), страница 99

Полученный тест удобен для МП КР580ВМ80, поскольку в нем используются операции поразрядного умножения, суммирования по модулю 2 и проверки нулевого результата, входящие в систему команд этого МП.

Алгоритм  вычисления  логической функции, в котором используется вышеуказанный тест, представлен на рис. Р8.8.

Программа вычисления логической функции:

FUNC:            IN        PORTX                       ;Ввод набора значений арнументов В в аккумулятор

МОV   В,А                  ;Дублирование А в регистре В

МVI    С,m                 ;Организация в регистре С счетчика минтермов и

;импликантов

LХІ      Н,М1               ;3агрузка в регистровую пару НL адреса М(1)

МASС:            МОV   А,В                  ;Пересылка В в аккумуляюр

АNА    М                    ;Вычисление М(j)ÙВ

INХ     Н                     ;Инкремент адреса М(j)

ЬРА     М                    ;Вычисление теста Т(j) = M(j) ÙBÅC(j)

JZ        F1                    ;Переход к выводу F=1 при T(j)=0

ІNХ     Н                     ;Инкремент адреса С(j)

DCR    С                     ;Декремент счетчика

JNZ     МASС             ;Переход к анализу следующего минтерма

;(импликанта) при Т(j)¹ 0

МVI    А,00                ;3асылка в аккумулятор «0»

OUТ    РОRТF            ;Вывод значения функции F = 0

F1:                   МVІ    А,01                ;3асылка в аккумулятор «1»

ОUT    РОRТF            ;Вывод значения функции F = 1

НLТ                            ;Останов

................................

................................

M1:                 M1                                                    ;

C1                                                     ;           Коды минтермов и

M2                                                    ;           импликантов

C2                                                     ;

.............................

Mm                                                  ;

Cm                                                    ;

Рис. Р8.8. Алгоритм вычисления логической функции

Р8.34. Коды, представляющие импликанты функции , находим по табл. Р8.2:

М(1)= 11100011; С(1) = 11000011; М(2) = 01111001; С(2) = =00110000.

Для первого набора значений аргументов по табл. Р8.3 формируем тест, соответствующий первому импликанту:

B = 11010011; М(1)=11100011; В ÙМ(1)= 11000011; С(1) = р 11000011; Т(1) = ВÙМ(1)ÅС(1) = 00000000.

Поскольку тест равен 0, первый импликант равен 1 и, ледовательно, F= 1.

На других наборах значений аргументов тесты для обоих мпликантов не равны 0, поэтому F = 0.

Р8.35. Одномерный массив — набор элементов данных одинаковой длины, размещенный в определенной области смежных ячеек ЗУ. Пример элемента данных - однобайтовое число. Могут быть и многобайтовые элементы данных. Адрес любого элемеита данных в массиве (рис. Р8.9,д) определяется суммой дреса начального элемента (символический адрес ВАSЕ) : порядкового номера — индекса IND данного элемента в массиве (если элемент данных многобайтовый, то следует индекс лемента умножить на число байтов). Алгоритм формирования и обработки массивов является циклическим и содержит следующие блоки (рис. Р8.9,б):

1) инициализация:  во-первых, загрузка указателя адреса начальным адресом ВАSЕ массива (обычно в МП КР580 роль указателя выполняет регистровая пара НL); во-вторых, загрузка ;четчика числом, равным длине (числу элементов) N массива обычно роль счетчика выполняет один из РОНов микропроцессора или ячейка ЗУ, например ячейка (с символическим адресом LENGTH). Часто реализуют суммирующий счетчик циклов, например, на одном из РОНов, а длину массива N загружают в некоторую ячейку ЗУ (с символическим адресом LENGTH);

2) ввод данных:  введение элемента массива из порта ввода например, из порта с символическим адресом ІРОRТ) в ячейку ЗУ, адрес которой размещен в указателе адреса;

3) обработка массива: выполнение необходимых арифметических и логических операций над элементами массива, например выполнение операций суммирования элементов массива;