
- •Цифровые и микропроцессорные устройства
- •Часть 3
- •Введение
- •Порядок выполнения работы
- •Структурная схема умк
- •Назначение органов управления, ввода и индикации
- •Включение и запуск умк
- •Команды системной программы монитор умк
- •Команда просмотр и модификация содержимого ячейки памяти
- •Команда просмотр и модификация содержимого регистров
- •Команда заполнение массива памяти константой
- •5.4 Команда старт программы
- •Команда подсчет контрольной суммы
- •Команда перемещение массива памяти
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •Теоретическое обоснование
- •Команды загрузки регистров общего пользования
- •Команды манипуляции 16-разрядными данными
- •Команды загрузки регистра указателя стека
- •Команды пересылки
- •Команда загрузки счетчика команд pchl
- •Команды прямой записи в память
- •Команды чтения памяти по прямому адресу
- •Команды чтения-записи памяти при косвенной адресации через регистровую пару hl
- •Команды чтения/записи при прямой адресации через регистровые пары bc, de
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •Теоретическое обоснование
- •Команды сложения 8-разрядных чисел
- •Команды вычитания 8-разрядных чисел
- •Команды двойного сложения
- •Команды инкремента
- •Команды декремента
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Команды логического сложения
- •Команды логического умножения
- •Команды исключающие или
- •Команда инверсия
- •Команды сравнения
- •Теоретическое обоснование
- •Команды сравнения с содержимым регистра
- •Команды сдвига
- •Теоретическое обоснование
- •Команды циклического сдвига
- •Команды сдвига через перенос
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •Теоретическое обоснование
- •Команды безусловного перехода
- •Команды перехода по признаку – ноль
- •Команды перехода по признаку с – перенос
- •Команды перехода по признаку р – четность
- •Приборы, оборудование и документация
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Методические указания
- •Теоретическое обоснование
- •Команды записи в стек, восстановления и обмена стеком
- •Команды вызова подпрограммы и возврата
- •Изучение архитектуры однокристального микроконтроллера pic16f84 Цель работы
- •Подготовка к выполнению работы
- •Вопросы для самоконтроля
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Требования к знаниям и умениям учащихся
- •Литература
- •Пример выполнения задания на симуляторе sim8085 microprocessor simulator
- •Содержание
- •Цифровые и микропроцессорные устройства
- •Часть 3
Команды записи в стек, восстановления и обмена стеком
PUSH B – запись в стек содержимого рег. пары BC;
PUSH D – запись в стек содержимого рег. пары DE;
PUSH H – запись в стек содержимого рег. пары HL;
PUSH PSW – запись в стек содержимого рег. пары F, A;
POP B – восстановление содержимого пары рег. BC;
POP D – восстановление содержимого пары рег. DE;
POP H – восстановление содержимого пары рег. HL;
POP PSW – восстановление содержимого пары рег. F, A;
XTHL – обмен содержимого верх. эл. стека и пары рег. HL.
Записать в память, начиная с адреса 0800Н, коды программы сохранения содержимого регистров: BC, DE, HL, F, A, которая указана в таблице 73.
Таблица 73 – Контрольная программа сохранения содержимого пар регистров
Адрес |
Команда |
Операнд |
Машинный код |
Комментарий |
0800 |
LXI |
SP,0B20H |
31 20 0В |
; Загр. SP=0B20H, нижняя ; граница стека |
0803 |
PUSH |
B |
C5 |
; ЗП сод. пары рег. BC в стек |
0804 |
PUSH |
D |
D5 |
; ЗП сод. пары рег. DE в стек |
0805 |
PUSH |
H |
E5 |
; ЗП сод. пары рег. HL в стек |
0806 |
PUSH |
PSW |
F5 |
; ЗП сод. пары рег. F, A в ; стек |
0807 |
HLT |
|
76 |
;останов |
Выполнить программу:
СТ0800 0807ВП.
Проверить содержимое пар регистров и заполнить таблицу 74. Результаты записать в рабочую тетрадь.
Таблица 74 – Результаты выполнения контрольной программы сохранения
содержимого пар регистров
(BC) |
(DE) |
(HL) |
(PSW) |
(SP) |
|
|
|
|
|
Изменить содержимое регистров микропроцессора:
B, C, D, E, H, L, A, F.
Записать в память программу восстановления содержимого пар регистров, которая указана в таблице 75.
Таблица 75 – Контрольная программа восстановления содержимого пар регистров
Адрес |
Команда |
Операнд |
Машинный код |
Комментарий |
0810 |
POP |
PSW |
F1 |
; Восст. сод. пары рег. F, A |
0811 |
POP |
H |
E1 |
; Восст. сод. пары рег. HL |
0812 |
POP |
D |
D1 |
; Восст. сод. пары рег. DE |
0813 |
POP |
B |
C1 |
; Восст. сод. пары рег. BC |
0814 |
HLT |
|
76 |
; Останов |
Выполнить программу:
СТ0810 0814ВП.
Проверить содержимое пар регистров и заполнить таблицу 76.
Таблица 76 – Результаты выполнения контрольной программы восстановления содержимого пар регистров
(BC) |
(DE) |
(HL) |
(PSW) |
(SP) |
|
|
|
|
|
Содержимое регистров B, C, D, E, H, L, F, A должно совпадать с соответствующими значениями таблицы 74. Содержимое указателя стека (SP) = 0B20H.
Записать в память программу пересылки данных из одного массива в другой (таблица 77), используя для адресации рег. пару HL и команду обмена стеком XTHL.
Выполнить программу:
СТ0820 0837ВП.
Таблица 77 – Контрольная программа пересылки данных из одного массива памяти в другой
Адрес |
Метка |
Команда |
Операнд |
Машинный код |
Комментарий |
0820 |
|
LXI |
H, 0900H |
21 00 09 |
; Загр. HL=0900H, адр. 2 ; масс. |
0823 |
|
LXI |
SP, 0B00H |
31 00 0B |
; Загр. SP=0B00H, нижняя ; граница стека |
0826 |
|
PUSH |
H |
E5 |
; ЗП в стек (HL)=0900H, ; адр. 2 масс. |
0827 |
|
LXI |
H, 0100H |
21 00 01 |
; Загр. HL=0100H адр. 1 ; масс. |
082A |
|
MVI |
C, 80H |
0E 80 |
; Загр. C=80H – длина ; массива |
082C |
М1 |
MOV |
A, M |
7E |
; Перес. A ← (M), элем. 1 ; масс. |
082D |
|
INX |
H |
23 |
; HL=(HL)+1, увел. на 1 адр. ; 1 массива |
082E |
|
XTHL |
|
E3 |
; Обмен сод. стека и HL, ; (HL) – адр. 2 масс., ; [(SP)] – адр. 1 масс. |
082F |
|
MOV |
M, A |
77 |
; ЗП M ← (A) эл. во 2 масс. |
0830 |
|
INX |
H |
23 |
; HL=(HL)+1, адр. 2 масс.+1 |
0831 |
|
XTHL |
|
E3 |
; Обмен сод. стека и HL, ; (HL) – адр. 1 масс., [(SP)] ; адр. 2 масс. |
0832 |
|
DCR |
C |
0D |
; С=(С)-1, уменьш. длину ; масс. |
0833 |
|
JNZ |
М1 |
C2 2C 08 |
; Продолжить, если (Iz)=0 |
0836 |
|
POP |
D |
D1 |
; Очистка стека |
0837 |
|
HLT |
|
76 |
;останов |
Подсчитать контрольную сумму (КС) исходного массива (0100Н…017FH) и КС 2 массива (0900H…097FH), они должны совпадать (см. таблицу 78). Для подсчета КС использовать команду ПОДСЧЕТ КОНТРОЛЬНОЙ СУММЫ системной программы МОНИТОР.
Таблица 78 – Результаты выполнения контрольной программы пересылки данных из одного массива в другой
КС массива (0100Н…017FH) |
КС массива (0900Н…097FH) |
77 |
77 |
Задание 1:
Написать и выполнить программу обмена регистровыми парами, используя команды записи в стек PUSH ri и восстановления POP ri, следующим образом:
BC → DE;
DE → HL;
HL → BC.
Начальный адрес программы 0А00Н, нижняя граница стека 0В10Н. Исходные данные для загрузки регистровых пар указаны в таблице 79.
Таблица 79 – Исходные данные и результаты выполнения проверочной программы записи в стек и восстановления
Вариант |
1 |
2 |
3 |
4 |
5 |
(BC) – исх. |
0001 |
0506 |
0B0C |
1112 |
1718 |
(DE) – исх. |
0203 |
0708 |
0D0E |
1314 |
191A |
(HL) – исх. |
0304 |
090A |
0F10 |
1516 |
1B1C |
(DE) – рез. |
|
|
|
|
|
(HL) – рез. |
|
|
|
|
|
(BC) – рез. |
|
|
|
|
|
Проверочную программу записать в таблицу, аналогичную по форме таблице 77. Выполнить программу, результаты записать в таблицу 79.