- •Цифровые и микропроцессорные устройства
- •Часть 4
- •07.04 2014 Г., протокол № 10
- •Введение
- •Лабораторная работа № 12составление линейных и циклических программ на языке ассемблер Цель работы
- •Подготовка к выполнению работы
- •Вопросы для самоконтроля
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •Лабораторная работа № 13обучение работе на симуляторе микропроцессора Sim8085 Microprocessor Simulator
- •Содержание отчета
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •2 Индивидуальное задание № 14. 1
- •3 Индивидуальное задание № 14. 2
- •4 Индивидуальное задание № 14. 3
- •Лабораторная работа № 15логические команды и команды сдвига Цель работы
- •Подготовка к выполнению работы
- •Вопросы для самоконтроля
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Команды сравнения
- •Команды сдвига
- •Индивидуальное задание № 15. 1
- •Индивидуальное задание № 15. 2
- •Индивидуальное задание № 15. 3
- •Лабораторная работа № 16 команды управления Цель работы
- •Подготовка и выполнение работы
- •Вопросы для самоконтроля
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •1 Теоретическое обоснование
- •2 Индивидуальное задание № 16. 1
- •3 Индивидуальное задание № 16. 2
- •Лабораторная работа № 17обучение работе в интегрированной среде mplab ide
- •Содержание отчета
- •Контрольные вопросы
- •Методические указания
- •1 Структурная схема учебного стенда нтц – 31.000
- •2 Органы управления учебного стенда
- •Цель работы
- •Подготовка к выполнению работы
- •Вопросы для самоконтроля
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •1. 2 Общий формат инструкций и директив
- •1. 3 Директивы Ассемблера
- •1.4 Числовые константы и системы счисления
- •2 Тренировочный пример составления исходного кода программы
- •Лабораторная работа № 19исследование устройств ввода-вывода дискретных сигналов в микропроцессорных системах на базе миКроконтроллера семейства dsPic33f Цель работы
- •Подготовка к выполнению работы
- •Вопросы для самоконтроля
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •1 Краткие теоретические сведения
- •2 Схема электрическая принципиальная к лабораторной работе
- •3 Алгоритм и листинг программы к заданию № 19. 1
- •4 Алгоритм и листинг программы к заданию № 19. 2
- •Лабораторная работа № 20реализация временных функций в микропроцессорных системах на базе миКроконтроллера семейства dsPic33f Цель работы
- •Подготовка к выполнению работы
- •Вопросы для самоконтроля
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •1 Краткие теоретические сведения
- •1.1 Реализация временных функций
- •1.2 Метод программных циклов
- •1.3 Использование таймера/счётчика
- •1.4 Схема электрическая принципиальная к лабораторной работе
- •1. 5 Листинг программы для создания проекта lr20_1
- •1.6 Листинг программы для создания проекта lr20_2
- •1.7 Листинг программы для создания проекта lr20_3
- •Литература
- •Содержание
- •Цифровые и микропроцессорные устройства
- •Часть 4
Вопросы для самоконтроля
Поясните, как формируется адрес следующей команды в линейных программах?
Поясните, как формируется адрес следующей команды в циклических программах при выполнении команд условных переходов на примере команды JNZ 201A h, если условие перехода выполняется либо не выполняется?
Поясните, что понимают под способом адресации? Укажите, какие способы адресации используются в МП Intel 8085A и поясните их сущность?
Укажите выполняемую операцию, способы адресации, формат, число циклов и тактов, машинный код, а также действия МП в каждом машинном цикле для следующих команд:
а) MOV C,D; |
б) ANA M; |
в) SUB 10 h; |
г) MVI A, 10 h; |
д) JZ 2010 h; |
е) CALL 201B h; |
ж) CALL 2025 h; |
з) RET; |
и) CNC 201F h; |
и) LXI B, 2100 h. |
|
|
Порядок выполнения работы
1 Проверка подготовки учащихся к занятию по вопросам для самоконтроля в виде фронтального или программированного опроса.
2 Выполнить индивидуальное задание № 12.1 Составить схему алгоритма и программу линейного вычислительного процесса на языке Ассемблер для МП Intel 8085A, которая реализует последовательности арифметических или логических операций согласно варианту, заданному в таблице 12.1 (номер варианта выбирается в зависимости от номера учащегося в списке подгруппы учебного журнала группы, т. е. от номера рабочего места).
Таблица 12.1 – Исходные данные к индивидуальному заданию № 12.1
№ варианта |
Последовательность операций |
Значения операндов (P = 16) | ||||||
(A) |
(B) |
(C) |
(D) |
(E) |
(M1) |
(M2) | ||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
1 |
M2 = 2((C) + (D)) – (M1) |
– |
– |
05 |
1A |
– |
10 |
– |
2 |
M1 = (B̅) ˅ (A) ˄ (M2) |
03 |
05 |
– |
– |
– |
– |
F0 |
3 |
M2 = ((M1) – (A)) : 2 + 15 h |
15 |
– |
– |
– |
– |
25 |
– |
4 |
M1 = (C̅) ˅ (M2)) ˄ (A) |
2D |
– |
E1 |
– |
– |
– |
32 |
5 |
M2 = (D) – 2 (M1) + 10 h |
– |
– |
– |
30 |
– |
08 |
– |
6 |
M1 = (E̅) ⊕ (A) () |
35 |
– |
– |
– |
1F |
– |
30 |
7 |
M2 = ((C) – (A)) : 4 – (M1) |
05 |
– |
2D |
– |
– |
05 |
– |
8 |
M1 = (D̅) ˄ ((A) ⊕ (M2)) |
1E |
– |
– |
32 |
– |
– |
A0 |
9 |
M2 = 4((D) – (M1)) + (A) |
10 |
– |
– |
0A |
– |
05 |
– |
Окончание таблицы 12.1
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
M1 = ((B) ⊕ (D̅)) ˄ () |
– |
25 |
– |
11 |
– |
– |
2F |
11 |
M2 = (A) + ((M1) – (D)) : 2 |
03 |
– |
– |
11 |
– |
1A |
– |
12 |
M1 = (B) ˄ (A) ⊕ () |
05 |
– |
– |
07 |
– |
– |
FE |
13 |
M2 = 2((M1) – (B)) + (A) |
1E |
1A |
– |
– |
– |
2B |
– |
14 |
M1 = (C̅) ⊕ (M2) ˄ (A) |
05 |
– |
01 |
– |
– |
– |
04 |
15* |
M2 = ((B) ⊕ ()) ˄ (A) +02 h |
51 |
2C |
– |
– |
– |
0F |
– |
Примечания
4 Для варианта №15* приведен пример в методических указаниях. |
2.1 Составить алгоритм решения задачи. При этом следует помнить, что в МП Intel 8085A арифметическое умножение и деление на 2 выполняется с помощью команд сдвига влево через перенос RAL и вправо через перенос RAR соответственно.
2.2 Составить программу на языке Ассемблер в виде таблицы (таблица 12.2).
Таблица 12.2 – Линейная программа на языке Ассемблер к индивидуальному заданию № 12.1
Адрес |
Метка |
Команда |
Операнд |
Машинный код |
Комментарий |
1 |
2 |
3 |
4 |
5 |
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.3 Определить ожидаемый результат вычисления. Для этого при выполнении арифметических операций следует подставить в заданное уравнение значения переменных в десятичной системе счисления и выполнить указанные арифметические операции в десятичной системе счисления. Порядок расчета и ожидаемый результат записать в отчет в десятичной и шестнадцатеричной системах счисления.
Логические операции следует выполнять в двоичной системе счисления поразрядно, при этом следует помнить, что логические операции обладают приоритетом. Порядок расчета и ожидаемый результат записать в отчет в двоичной и шестнадцатеричной системах счисления (см. пример в методических указаниях к данной лабораторной работе).
3 Выполнить индивидуальное задание № 12.2 Составить программу циклического вычислительного процесса на языке Ассемблер для МП Intel 8085A по заданному алгоритму, которая реализует умножение двух восьмиразрядных двоичных чисел без учета знака (кодовое умножение) согласно варианту, заданному в таблице 12.3. Начальный адрес программы 2000 h.
Таблица 12.3 – Исходные данные к индивидуальному заданию № 12.2
Номер варианта |
Значения операндов (P = 16) |
Номер варианта |
Значения операндов (P = 16) | ||
(DE) |
(A) |
(DE) |
(A) | ||
1 |
00A3 |
B2 |
8 |
00C3 |
5B |
2 |
00B4 |
C3 |
9 |
00B3 |
74 |
3 |
00D5 |
24 |
10 |
00D2 |
A3 |
4 |
00E6 |
35 |
11 |
00B1 |
57 |
5 |
00F1 |
DA |
12 |
00C1 |
61 |
6 |
00D4 |
35 |
13 |
00D1 |
73 |
7 |
00B2 |
47 |
14 |
00E1 |
83 |
Пусть множимое хранится в паре регистров DE, где оно занимает младший регистр E, старший регистр D пары регистров установлен в нуль. Множитель хранится в аккумуляторе A. 16-разрядное произведение будем формировать в паре регистров HL. Счетчик числа повторений цикла организуем на регистре B.
Процесс умножения организуем следующим образом. Будем анализировать разряды множителя, начиная с его старшего разряда. Поэтому частичные произведения будут формироваться, начиная со старшего частичного произведения. Накопление суммы частичных произведений будем производить в паре регистров HL, т.е. к содержимому предварительно сброшенной в нуль пары регистров HL вначале прибавим восьмое частичное произведение. Затем, сдвинув на один разряд влево содержимое пары регистров HL, прибавим седьмое частичное произведение и так далее, пока не будут просуммированы все частичные произведения.
Таким образом, процесс умножения носит циклический характер. Цикл, содержащий операции сдвига влево содержимого пары регистров HL, формирования и прибавления к содержимому пары регистров HL очередного частичного произведения, должен быть повторен восемь раз. Алгоритм решения задачи представлен на рисунке 12.1.
Блок 1(рисунок 12.1) производит загрузку множимого в пару регистров DE и множителя в регистр A. Блок 2 производит загрузку нулевого значения в пару регистров HL. Блок 3 устанавливает в регистре B (счетчике циклов) начальное значение 8. Блок 4 производит сдвиг на один разряд влево содержимого пары регистров HL (команды DAD HL). Эта операция выполняется путем удвоения содержимого пары регистров: HL (HL) + (HL). Блок 5 предназначен для анализа очередного разряда множителя. Для этого содержимое аккумулятора сдвигается влево, в результате чего очередной разряд множителя пересылается в триггер TC регистра признаков. Блок 6 производит разветвление (условный переход) по содержимому триггера перехода TC. При (TC) = 1 в блоке 7 выполняется операция суммирования множимого к сумме предыдущих частичных произведений в паре регистров HL (команда DAD DE). При (TC) = 0 операция суммирования не выполняется, по команде условного перехода JNC M1 осуществляется переход к команде блока 8. Блок 8 производит вычитание единицы из содержимого регистра B, после чего блок 9 выполняет условный переход по содержимому триггера нуля TZ регистра признаков. Если (TZ) = 0 (содержимое регистра B не равно нулю), то команда условного перехода JNZ M2 производит переход к команде блока 4, вызывая очередное повторение выполнения тела цикла. Если (TZ) = 1 (содержимое регистра B равно нулю), то происходит выход из цикла и переход к очередной команде.
3.1Составить циклическую программу умножения восьмиразрядных двоичных чисел на языке Ассемблер в форме таблицы 12.2.
3.2 Определить время выполнения операции умножения для тактовой частоты равной 4 МГц. Для этого определить количество тактов, требуемое для однократного прохождения цикла алгоритма и полученный результат умножить на восемь. Суммарное число тактов умножить на длительность тактового периода (0,25 мкс).
4 Ответить на контрольные вопросы.
5 Оформить отчет и сдать зачет.