- •Цифровые и микропроцессорные устройства
- •Часть 4
- •2014 Г., протокол № ____
- •Введение
- •Составление линейных и циклических программ
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •Обучение работе на симуляторе микропроцессора Sim8085 Microprocessor Simulator
- •Содержание отчета
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •2 Индивидуальное задание №1
- •3 Индивидуальное задание №2
- •4 Индивидуальное задание №3
- •Логические команды и команды сдвига Цель работы
- •Подготовка к выполнению работы
- •Вопросы для самоконтроля
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Команды сравнения
- •Команды сдвига
- •Индивидуальное задание №1
- •Индивидуальное задание №2
- •Индивидуальное задание №3
- •Команды управления Цель работы
- •Подготовка и выполнение работы
- •Вопросы для самоконтроля
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •1 Теоретическое обоснование
- •2 Индивидуальное задание №1
- •3 Индивидуальное задание №2
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), необходимо выполнить ее в пошаговом режиме по отдельным операциям (Project Step Over) и проследить за содержимым указателя стека SP после выполнения команд соответствующих блокам 12 и 13 основной программы (рисунок 16.2, а), а также блокам 1 и 5 подпрограммы (рисунок 16.2, б). Полученные значения записать в отчет и сделать выводы.
Рисунок 16.2 – Алгоритм решения задачи (a) и алгоритм подпрограммы (б)