Т.к. все функции в программе вычисляются аналогично друг другу, одними и теми же способами, то для примера можно составить алгоритм вычисления одной функции, который по сути будет справедлив для остальных функций. Для примера возьмем функцию E1 . Схема алгоритма программы вычисления одной функции E1 показана на рис.4.
Рис.4. Схема алгоритма вычисления ФАЛ
|
|||
На схеме алгоритма (рис.4) введены следующие обозначения:
– исходный байт данных;
– байты результатов конкретных логических операций над первым и вторым слагаемыми функции E1 ;
– константы маскирования байта ;
- константы для логического сложения по модулю два с замаскированными байтами для определения логического значения байтов.
По данному алгоритму можно составить требуемую программу.
Нижеследующие фрагменты текста программы будут выделены другим шрифтом, нежели основной текст.
В первую очередь образуем исходный байт данных вида 000x1x2Q1Q2Q3 .
MOV A,B |
;пересылка в аккумулятор байта 0000 00x1x2 |
|
RLC |
;сдвиг содержимого аккумулятора на один разряд влево, в результате получаем байт 0000 0x1x20 |
|
RLC |
;повторный сдвиг на один разряд дает байт 0000 x1x200 |
|
RLC |
;очередной сдвиг дает байт 000x1 x2000 |
|
ORA D |
;логическое сложение байтов, хранящихся в аккумуляторе и регистре D, дает исходный байт данных 000x1 x2Q1Q2Q3 |
Сохраним исходный байт данных в регистре E для последующего многократного использования.
MOV E,A |
;копирование содержимого аккумулятора в регистр Е |
Составим программу расчета системы функций E1 , E2 , E3
на основе представленного выше алгоритма (см. рис.4).
;Вычисление функции E1 |
||
ANI 11111010B |
;маскирование битов Q1 и Q3 в первом слагаемом E1 |
|
XRI 10B |
;вычисление первого слагаемого путем сложения замаскированного байта по модулю два с константой, содержащей единицы в неинвертируемых разрядах |
|
JZ M1 |
;переход к месту, где функции E1 присваивается значение 1, в случае, если результат предыдущей операции равен 0 (то есть первое слагаемое равно 1) |
|
MOV A,E |
;восстановление исходного байта данных в аккумуляторе |
|
ANI 11110100B |
;маскирование битов x2, Q2 и Q3 во втором слагаемом |
|
XRI 100B |
;вычисление второго слагаемого |
|
|||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.