
5. Содержание отчета
Задание по лабораторной работе;
Текст программы с комментариями;
Контрольный просчет задания;
Краткое описание сегмента BSEG;
Краткое описание битовых команд.
6. Пример выполнения задания.
Рассмотрим 29 вариант.
Пусть в DSEG в ячейке ADR2=78h расположен код CODE=48h.
Записать на языке ассемблера МК51 программу, которая выполняет вычисление заданной булевой функции F над этими кодами. Результат вычисления должен быть записан по адресу ADR3=3Eh. Программа должна начинаться с ячейки ADR1=04D4h.
Вариант 29. Из таблицы определение параметра ОР выберем 9 столбец:
Z |
9 |
OP1 |
\/ |
OP2 |
\/ |
OP3 |
/\ |
OP4 |
\/ |
OP5 |
|
OP6 |
/\ |
OP7 |
\/ |
Из таблицы значения переменных выберем 2 столбец:
X |
2 |
X0 |
П |
X1 |
П |
X2 |
И |
X3 |
И |
X4 |
И |
X5 |
И |
X6 |
П |
X7 |
П |
В
результате получим функцию
.
Пример программы на ассемблере для решения поставленной задачи:
org 0
jmp start
org 04D4h
start:
mov 20h,78h ; переносим CODE в битовое пространство
mov c,7 ; c=x7
orl c,6 ; c=x7 or x6
orl c,/5 ; c=x7 or x6 or not(x5)
anl c,/4 ; c=x7 or x6 or not(x5) and not(x4)
orl c,/3 ; c=x7 or x6 or not(x5) and not(x4) or not(x3)
; вычисление (x7 or x6 or not(x5) and not(x4) or not(x3)) xor not(x2)
mov 8,c
cpl c
anl c,/2
mov 9,c
mov c,2
anl c,8
orl c,9
; c=(x7 or x6 or not(x5) and not(x4) or not(x3)) xor not(x2) and x1
anl c,1
; c=(x7 or x6 or not(x5) and not(x4) or not(x3)) xor not(x2) and x1 or x0
orl c,0
mov 3Eh,c ; сохранить F в 3Eh
jmp $ ; конец программы
end
Результат программы: F=0
Контрольный просчет: 48h=01001000b