Проектирование элементов ЭВУ, страница 7


JZ M1

;переход, если второе слагаемое равно 1

MVI D,0B

;запись в регистр D, где будет храниться байт результата вида 0000 0E1E2E3, значения Е1 = 0 (нули записываются во все разряды)

JMP M2

;безусловный переход для исключения следующей команды

M1:

MVI D,100B

;запись в регистр D значения E1 = 1 (в разряд D2). В регистре D теперь находится байт 0000 0100

M2:

MOV A,E

;восстановление байта данных в аккумуляторе

;Вычисление функции E2

ANI 11110101B

;маскирование битов x2 и Q2 в первом слагаемом E2

XRI 10001B

;вычисление первого слагаемого

JZ M3

;переход, если первое слагаемое равно 1, в то место, где функции E2 присваивается значение 1

MOV A,E

;восстановление исходного байта данных в аккумуляторе

ANI 11110010B

;маскирование битов x2, Q1 и Q3 во втором слагаемом

XRI 10010B

;вычисление второго слагаемого

JNZ M4

;переход к месту, где пропускается присваивание функции E2 значения 1, в случае, если результат предыдущей операции не равен 0 (то есть второе слагаемое равно 0). Таким образом функция E2 получается равной 0

M3:

MOV A,D

;запись в аккумулятор байта, где в разряде D2 находится значение E1

ORI 10B

;запись значения E2 = 1 в разряд A1 аккумулятора. Содержимое остальных разрядов при этом сохраняется. Получаем байт вида 0000 0E1E20 = 000 0E110

MOV D,A

;пересылка содержимого аккумулятора в регистр D

M4:

MOV A,E

;восстановление байта данных в аккумуляторе

;Вычисление функции E3

ANI 11100100B

;маскирование битов x1, x2, Q2 и Q3 в первом слагаемом E3

XRI 100B

;вычисление первого слагаемого

JZ M5

;переход, если первое слагаемое равно 1, в то место, где функции E3 присваивается значение 1

MOV A,E

;восстановление исходного байта данных в аккумуляторе

ANI 11110010B

;маскирование битов x2, Q1 и Q3 во втором слагаемом E3

XRI 10010B

;вычисление второго слагаемого

JZ M5

;переход, если второе слагаемое равно 1, в то место, где функции E3 присваивается значение 1

MOV A,E

;восстановление исходного байта данных в аккумуляторе

ANI 11101010B

;маскирование битов x1, Q1 и Q3 в третьем слагаемом E3. Так как все переменные в записи третьего слагаемого с инверсией, то вычислять его нет необходимости, надо только проверить результат операции (0 или не 0)

JZ M5

;переход, если третье слагаемое равно 1, в то место, где функции E3 присваивается значение 1