MOV A,E |
;восстановление исходного байта данных в аккумуляторе |
|
ANI 11100011B |
;маскирование битов x1, x2 и Q1 в четвертом слагаемом |
|
JNZ M6 |
;переход к месту, где пропускается присваивание функции E3 значения 1, в случае, если результат предыдущей операции не равен 0 (то есть четвертое слагаемое равно 0). Таким образом функция E3 получается равной 0 |
|
M5: |
INR D |
;занесение значения E3 = 1 в разряд D0 регистра D путем добавления единицы (инкремент) |
M6: |
NOP |
;пустая команда (продолжение программы) |
Итак, вышеизложенный фрагмент программы вычисляет значения функций E1 , E2 и E3 и заносит результат в регистр D в виде байта 0000 0E1E2E3. Теперь необходимо вычислить значения битов выходного сигнала y1 и y2 по найденным значениям E1 , E2 и E3 :
;Вычисление функции y1 |
||
MOV A,D |
;копирование содержимого регистра D в аккумулятор, в аккумуляторе теперь байт вида 0000 0E1E2E3 |
|
ANI 11111101B |
;маскирование бита E2 в первом слагаемом y1 |
|
XRI 101B |
;вычисление первого слагаемого |
|
JZ M7 |
;переход к месту, где функции y1 присваивается значение 1, в случае, если результат предыдущей операции равен 0 (то есть первое слагаемое равно 1) |
|
MOV A,D |
;восстановление байта данных в аккумуляторе |
|
ANI 11111011B |
;маскирование бита E1 во втором слагаемом |
|
XRI 11B |
;вычисление второго слагаемого |
|
JZ M7 |
;переход, если второе слагаемое равно 1 |
|
MOV A,D |
;восстановление байта данных в аккумуляторе |
|
;для третьего слагаемого маскирование не требуется, так как оно содержит все переменные байта данных (E1, E2 и E3), а также для него не требуется вычисление, так как все переменные в слагаемом взяты с инверсией. Однако команда MOV не влияет на флаги, поэтому необходимо воспользоваться командой XRI для установления флагов |
||
XRI 0B |
;вычисление третьего слагаемого |
|
JZ M7 |
;переход, если третье слагаемое равно 1 |
|
MVI С,0B |
;запись в регистр С, где будет храниться байт результата вида 0000 00y1y2, значения y1 = 0 (нули записываются во все разряды) |
|
JMP M8 |
;безусловный переход для исключения следующей команды |
|
M7: |
MVI С,10B |
;запись в регистр C значения y1 = 1 (в разряд C2). В регистре C теперь находится байт 0000 0010 |
M8: |
MOV A,D |
;восстановление байта данных в аккумуляторе |
|
|||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.