Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СпецКомп_очн_ЛР2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
471.55 Кб
Скачать

5. Задание по лабораторной работе

Пусть в памяти программ, начиная с ячейки ADR2, расположена таблица кодов Z длиной N.

  • записать в кодах МК программу, которая выполняет пересылку данного массива в RAM, начиная с адреса ADR3. Программа должна начинаться с ячейки ADR1;

  • после пересылки массива вычислить значение функции F1, исходными данными для которой являются элементы исходного массива;

  • вычислить значение битовой функции F2, исходными данными для которой являются разряды значения функции F1. Результат поместить в бит с порядковым номером, который соответствует номеру варианта.

Таблица 5.1. Таблица вариантов заданий

НОМЕР

ADR1

ADR2

N

ADR3

1

62F

541

F

23

2

53E

621

D

45

3

44A

711

C

56

4

355

121

B

48

5

266

236

A

3D

6

177

345

6

4F

7

78A

454

7

3A

8

69D

568

F

4C

9

5AF

677

E

44

10

4BA

781

5

23

11

3C9

231

6

18

12

2D8

3A1

7

4C

13

1E4

4B2

8

6C

14

7F5

5C2

8

6F

15

6E6

6D2

9

3A

16

5A1

7E2

F

4A

17

4D3

1F2

A

5B

18

3C8

2E2

B

3B

19

26F

3D2

C

4B

20

4BE

782

D

39

21

3CA

232

E

47

22

2D3

3A2

F

65

23

1E7

4B2

8

33

24

7F3

5C2

8

3D

25

6E5

6D2

9

55

26

5AD

7E4

C

3E

27

4D2

2E1

E

37

28

714

431

E

4F

29

15F

5D3

F

3F

30

3C6

623

9

5C

Коды данных соответствуют ASCII-символам фамилии, имени и отчества студента.

Таблица 5.2. Алгоритм вычисления функции F1

Вид функции F2 для вычисления определяется следующим образом. Значение F1 имеет формат (поразрядно)

X7

X6

X5

X4

X3

X2

X1

X0

F2 = (X7) OP1 (X6) OP2 (X5) OP3 (X4) OP4 (X3) OP5 (X2) OP6 (X1) OP7 (X0),

где OPi - булева операция, находится в таблице 5.3.

Таблица 5.3. Таблица операций

Z

0

1

2

3

4

5

6

7

8

9

OP1

OP2

OP3

OP4

OP5

OP6

OP6

/\ - операция И

\/ - операция ИЛИ

+ - операция ИСКЛЮЧАЮЩЕЕ ИЛИ

6. СОДЕРЖАНИЕ ОТЧЕТА:

      • определение варианта задания по лабораторной работе:

для табл. 5.1.: N – выдается преподавателем;

для табл. 5.2.: левая часть: (N*3) mod 10;

правая часть: (N*7) mod 10;

для табл. 5.3.: (N*13) mod 10;

      • задание по лабораторной работе;

      • подробная блок-схема алгоритма решения поставленной задачи;

      • контрольный просчет;

      • текст программы с подробными комментариями.

7. ФРАГМЕНТЫ ВЫПОЛНЕНИЯ ЗАДАНИЯ

В памяти команд с адреса ADR1 расположено N кодов. Необходимо переписать их в память данных, начиная с адреса ADR2.

Текст программы:

MET1: MOV PSW, #00 ; Выбор банка Bank0

… MOV DPTR, <ADR1 – 1> ; Указатель на память программы

… MOV R0, <ADR2 + N – 1> ; Указатель на память данных

… MOV R1, <N> ; Количество элементов массива

MET2: MOV A, R1 ; Индекс текущего элемента массива

… MOVC A, @A+DPTR ; Получение элемента в А

… MOV @R0, A ; Пересылка в память данных

… DEC R0 ; Уменьшение индекса

… DJNZ R1, MET2 ; Организация цикла

… NOP

Пусть в памяти данных, начиная с ячейки ADR1, расположен массив кодов длиной N. Необходимо вычислить сумму четных значений элементов этого массива, результат поместить в ячейки RAM с адресами ADR2, ADR2+1 (старший и младший байты соответственно).

Текст программы:

MET1: MOV PSW, #00 ; Выбор банка Bank0

… MOV R2, <N> ; Количество элементов массива

… MOV R0, <ADR1> ; Указатель на память данных

… CLR A ; Очистка А

… MOV R3, A ; Очистка младшей части суммы

… MOV R4, A ; Очистка старшей части суммы

MET2: MOV A, @R0 ; Получение первого элемента

… JB A.0, MET3 ; Если младший бит = 0, число четное

… ADD A, R3 ; Подсчет суммы

… MOV R3, A ; Сохранение младшей части суммы

… JNC MET3 ; Если не было переноса  след. элемент

… INC R4 ; Инкремент старшей части суммы

MET3: INC R0 ; Сдвиг указателя на след. элемент

… DJNZ R2, MET2 ; Организация цикла

… MOV <ADR2>, R4 ; Сохранение старшей

… MOV <ADR2 + 1>, R3 ; и младшей частей результата

Пусть в DSEG, в ячейке ADR1 расположен код CODE. Записать в кодах МК Intel 8051 программу, которая выполняет вычисление заданной булевой функции F=X4  ~X3  X0 над этими кодами. Результат вычислений должен быть записан по адресу ADR2 пространства BSEG.