2. Задание для домашней подготовки.
Повторить основные узлы МК51;
Повторить форматы данных и команд МК51;
Повторить способы адресации данных МК51;
Повторить организацию пространства BSEG;
Повторить битовые операции.
3. Порядок выполнения работы.
Ознакомиться с заданием и проанализировать его.
Составить программу согласно заданию в кодах МК51.
Набрать текст составленной программы в текстовом редакторе отладчика.
Выполнить трансляцию программы (в случае возникновения ошибок исправить их).
Выполнить пошаговое выполнение программы и убедиться в правильности ее работы (в случае неправильности внести исправления в текст программы и повторить п.4-5)
4. Задание по лабораторной работе.
Пусть в DSEG в ячейке ADR2 расположен код CODE.
Записать на языке ассемблера МК51 программу, которая выполняет вычисление заданной булевой функции F над этими кодами. Результат вычисления должен быть записан по адресу ADR3. Программа должна начинаться с ячейки ADR1. Варианты заданий приведены в таблице 3.
Таблица 3. Таблица вариантов заданий
Номер |
ADR1 |
ADR2 |
CODE |
ADR3 |
01 |
333 |
43 |
FE |
7A |
02 |
A45 |
54 |
3F |
4B |
03 |
563 |
62 |
5D |
6C |
04 |
234 |
71 |
7C |
7D |
05 |
D41 |
12 |
8B |
1E |
06 |
872 |
23 |
7A |
2F |
07 |
45F |
34 |
1E |
4F |
08 |
32E |
45 |
F2 |
5A |
09 |
695 |
56 |
E3 |
6B |
10 |
5A2 |
67 |
FA |
3C |
11 |
4B3 |
78 |
A5 |
4D |
12 |
3C4 |
23 |
56 |
5E |
13 |
2DF |
3A |
F7 |
6F |
14 |
1E3 |
4B |
A8 |
7A |
15 |
7FE |
5C |
48 |
5B |
16 |
6E2 |
6D |
29 |
6C |
17 |
5A2 |
7E |
F3 |
3D |
18 |
4D4 |
1F |
E2 |
5E |
19 |
3C3 |
2E |
D3 |
6F |
20 |
261 |
3D |
A4 |
5A |
21 |
38F |
5D |
B5 |
3D |
22 |
2CC |
53 |
3D |
2E |
23 |
3D3 |
6A |
4F |
3E |
24 |
7E3 |
7B |
8F |
48 |
25 |
2F4 |
5E |
6D |
5B |
26 |
4E4 |
45 |
D9 |
6C |
27 |
6E2 |
56 |
F7 |
3D |
28 |
5A2 |
67 |
A8 |
2E |
29 |
4D4 |
78 |
48 |
3E |
30 |
3C3 |
23 |
29 |
48 |
31 |
261 |
3A |
F3 |
5B |
Вид функции F для вычисления определяется следующим образом: пусть YZ номер студента в списке группы (для номеров меньше 10 первая цифра 0).
Код CODE имеет формат (поразрядно)
-
Х7
Х6
Х5
Х4
Х3
Х2
Х1
Х0
F=(X7)OP1(X6)OP2(X5)OP3(X4)OP4(X3)OP5(X2)OP6(X1)OP7(X0),
где ОР – булева операция, находится из таблицы 4, а каждая переменная Х может входить в выражение прямо или инверсно (определяется по таблице 5).
Таблица 4. Определение параметра ОР.
Z |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
OP1 |
/\ |
/\ |
/\ |
/\ |
/\ |
\/ |
\/ |
\/ |
\/ |
\/ |
OP2 |
|
|
|
/\ |
/\ |
/\ |
\/ |
\/ |
\/ |
\/ |
OP3 |
\/ |
\/ |
\/ |
|
|
|
|
\/ |
|
/\ |
OP4 |
|
|
\/ |
/\ |
\/ |
/\ |
/\ |
/\ |
\/ |
\/ |
OP5 |
/\ |
/\ |
\/ |
\/ |
\/ |
|
|
|
|
|
OP6 |
|
\/ |
/\ |
\/ |
/\ |
/\ |
|
|
/\ |
/\ |
OP7 |
\/ |
|
|
|
|
|
\/ |
/\ |
|
\/ |
/\ - операция И (AND)
\/ - операция ИЛИ (OR)
- операция исключающее ИЛИ (XOR)
Таблица 5. Значения переменных.
X |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
X0 |
П |
И |
П |
И |
П |
И |
П |
И |
П |
И |
X1 |
П |
П |
П |
П |
И |
И |
И |
И |
И |
И |
X2 |
П |
П |
И |
И |
И |
П |
П |
И |
И |
П |
X3 |
И |
И |
И |
П |
П |
П |
И |
И |
И |
И |
X4 |
И |
И |
И |
П |
И |
П |
П |
И |
П |
П |
X5 |
П |
И |
И |
П |
И |
П |
П |
П |
И |
И |
X6 |
И |
П |
П |
П |
И |
И |
П |
П |
П |
П |
X7 |
П |
П |
П |
П |
П |
П |
П |
П |
П |
П |
П – переменная в функцию входит прямо (без инверсии)
И – переменная в функцию входит инверсно
