Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум 4 А4.docx
Скачиваний:
63
Добавлен:
13.02.2016
Размер:
1.32 Mб
Скачать

2 Индивидуальное задание №1

Написать с адреса 2000 h на языке Ассемблер для МП Intel 8085A циклическую программу дополнения байта до четности в старшем разряде для МП Intel 8085A в соответствии с алгоритмом, который представлен на рисунке 16.1. Исходное число загрузить в регистр С.

Рисунок 16.1 – Алгоритм программы дополнения байта до четности

Для выполнения заданной операции содержимое регистра С пересылается в регистр-аккумулятор А, а затем обнуляется старший бит регистра А (блок 3 на рисунке 16.1). Команда блока 4 устанавливает признак Р в регистре признаков МП, по результатам которой выполняется условный переход по значению признака Р. Если признак Р = 0, то команда блока 6 дополняет байт до четности. В противном случае передается управление команде блока 7.

Исходные значения байта (два значения) приведены в таблице 16.2.

Таблица 16.2 – Исходные данные к индивидуальному заданию №1

Номер варианта

Исходные данные (Р = 16)

Номер варианта

Исходные данные (Р = 16)

(С)1

(С)2

(С)1

(С)2

1

01

FF

8

8A

82

2

С6

83

9

62

63

3

CD

F5

10

51

53

4

13

41

11

40

42

5

05

A2

12

30

31

6

03

12

13

22

23

7

07

24

14

9A

9B

Программу записать в таблицу, аналогичную по форме таблице 12.4. До выполнения программы вычислить и записать ожидаемый результат для двух заданных байтов. Расчет производить в двоичной системе счисления. Например, байт Е4(16) = 1110 0100(2) сохранит свое значение, а байт 4С(16) = 0100 1100(2) примет значение СС(16) = 1100 1100(2).

Результаты выполнения записать в таблицу 16.3 и сделать выводы.

Таблица 16.3 – Результаты выполнения индивидуального задания №1

Номер варианта

Содержимое регистров (Р = 16)

Значения признаков

(С)1-исх

(С)1-рез

(С)2-исх

(С)2-рез

S

Z

A

P

C

3 Индивидуальное задание №2

Написать с адреса 2000 h на языке Ассемблер для МП Intel 8085А программу, содержащую подпрограмму подсчета контрольной суммы (КС) 10 h ячеек памяти (2030 h…203F h), заполненных константой, значение которой задано в таблице 16.4.

Таблица 16.4 – Исходные данные к индивидуальному заданию №2

Номер варианта

Исходные данные (Р = 16)

Номер варианта

Исходные данные (Р = 16)

(D)

(D)

1, 3, 5, 7

05

8, 10, 12, 14

09

2, 4, 6

0A

9, 11, 13

0D

Начальный адрес массива загрузить в пару регистров HL, заданную константу – в регистр D. Заполнение массива константой оформить в виде цикла, счетчик циклов организовать на регистре Е. Значение контрольной суммы записать в регистр С. Начальный адрес подпрограммы 2020 h. Нижняя

граница стека – 2045 h. Алгоритм решения задачи и алгоритм подпрограммы представлены на рисунке 16.2.

До выполнения программы вычислить значение контрольной суммы массива ячеек памяти для заданной константы (без переноса в старший разряд).

Результаты выполнения записать в таблицу 16.5 и сделать выводы.

Таблица 16.5 – Результаты выполнения индивидуального задания №2

Номер варианта

Результат

(P = 16)

Содержимое регистров и ЯП

(P = 16)

Значения признаков

(C)

(D)

(E)

(H)

(L)

(M1) -(M16)

(SP)

S

Z

A

P

C

После выполнения программы целиком (Project Run), необходимо выполнить ее в пошаговом режиме по отдельным операциям (ProjectStep Over) и проследить за содержимым указателя стека SP после выполнения команд соответствующих блокам 12 и 13 основной программы (рисунок 16.2, а), а также блокам 1 и 5 подпрограммы (рисунок 16.2, б). Полученные значения записать в отчет и сделать выводы.

Рисунок 16.2 – Алгоритм решения задачи (a) и алгоритм подпрограммы (б)