
- •Оглавление
- •Общие сведения о микропроцессоре кр580вм80/кр580вм80а (мп кр580) Цели и задачи практикума
- •Вводная информация
- •Структура мп кр580
- •Блок регистров.
- •Арифметическо-логическое устройство.
- •Структура памяти и форматы команд мп кр580
- •Справочная информация по микропроцессору мп кр580
- •Система команд кр580.
- •Коды команд мп кр580.
- •Лабораторная работа №1.Ознакомление с работой мп кр580 и работой эмулятора emКр580
- •1.1.Руководство пользования эмулятором emКр580
- •1.1.1.Текстовый редактор.
- •1.1.2.Синтаксис редактора.
- •1.1.3.Эмулятор программы.
- •1.2.Задания для самоподготовки
- •1.3.Задания к лабораторной работе
- •1.4.Содержание отчета
- •1.5.Контрольные вопросы
- •Лабораторная работа №2.Исследование системы команд мп кр580
- •2.1.Краткие сведения из теории
- •2.1.1.Способы адресации памяти.
- •2.1.2.Система команд микропроцессора.
- •2.1.2.1Команды пересылки данных.
- •2.1.2.2Арифметические и логические команды.
- •2.1.2.3Команды передачи управления.
- •2.1.2.4Специальные команды.
- •2.2.Задания для самоподготовки
- •2.3.Задания к лабораторной работе
- •2.4.Содержание отчета
- •2.5.Контрольные вопросы
- •Лабораторная работа №3.Подпрограммы и стек
- •3.1.Краткие сведения из теории
- •3.2.Задания для самоподготовки
- •3.3.Задания к лабораторной работе
- •3.4.Содержание отчета
- •3.5.Контрольные вопросы
- •Лабораторная работа №4.Ввод/вывод, маскирование данных и организация условных переходов
- •4.1.Краткие сведения из теории
- •4.1.1.Общие сведения об организации интерфейса ввода/вывода.
- •4.1.2.Маскирование данных.
- •4.1.3.Организация условных переходов.
- •4.2.Задания для самоподготовки
- •4.3.Задания к лабораторной работе
- •4.4.Содержание отчета
- •4.5.Контрольные вопросы
- •Лабораторная работа №5.Выполнение арифметических операций
- •5.1.Краткие сведения из теории
- •5.1.1.Сложение и вычитание.
- •5.1.2.Умножение чисел.
- •5.1.3.Деление чисел.
- •5.1.4.Вычисление специальных функций.
- •5.2.Задания для самоподготовки
- •5.3.Задания к лабораторной работе
- •5.4.Содержание отчета
- •5.5.Контрольные вопросы
- •Литература
2.2.Задания для самоподготовки
Изучить способы адресации МП КР580.
Ознакомиться с языком программирования Ассемблер и с программированием в машинных кодах для МП БИС КР580.
Ознакомиться с системой команд МП КР580.
Рассмотреть особенности выполнения команд пересылки данных, арифметических и логических команд (в частности, подробно рассмотреть особенности выполнения команд INR A, DCR A, ADD A, ANA A, ORA A, CMP A, DAA).
Самостоятельно составить программу сравнения двух 8-разрядных чисел, находящихся в ячейках памяти с адресами 0100h и 0101h, и записи большего из них в память по адресу 0102h.
2.3.Задания к лабораторной работе
Задание 2.2. Исследование программы по выполнению арифметических и логических операций с одним операндом (над содержимым аккумулятора).
Порядок выполнения задания:
Ввести программу Прогр. 2 .2, исправить ошибки, осуществить пуск.
Исследовать процесс выполнения программы в пошаговом режиме (обратить особое внимание на изменения регистра флагов).
Заменяя во второй строке программы число, записываемое в регистр B, исследовать программу при различном значении этого числа.
Занести результаты выполнения программы в таблицу Табл. 2 .2 (см. ниже, числа в таблицу заносить в 16-ричной системе счисления).
Прогр. 2.2. Программа по выполнению арифметических и логических операций с одним операндом.
|
LHLD 0100h |
;В HL адрес ячейки памяти (начало массива). |
|
MVI B, 1Eh |
;Записать число в регистр B (исходное число). |
|
MOV A, B |
; Записать исходное число в Акк. |
|
CMA |
;1. Инверсия Акк. |
|
CALL PROC_1 |
; Переход на подпрограмму PROC_1. |
|
INR A |
;2. Инкрементация Акк. |
|
CALL PROC_1 |
; Переход на подпрограмму PROC_1. |
|
DCR A |
;3. Декрементация Акк. |
|
CALL PROC_1 |
; Переход на подпрограмму PROC_1. |
|
ADD A |
;4. Умножить Акк. на 2 |
|
CALL PROC_1 |
; Переход на подпрограмму PROC_1. |
|
ANA A |
;5. Выполнить над Акк. операцию лог. И. |
|
CALL PROC_1 |
; Переход на подпрограмму PROC_1. |
|
ORA A |
;6. Выполнить над Акк. операцию лог. ИЛИ. |
|
CALL PROC_1 |
; Переход на подпрограмму PROC_1. |
|
CMP A |
;7. Сравнить Акк с самим собой. |
|
CALL PROC_1 |
; Переход на подпрограмму PROC_1. |
|
DAA |
;8. Выполнить десятичную коррекцию над Акк. |
|
CALL PROC_1 |
; Переход на подпрограмму PROC_1. |
|
HLT |
;Завершение программы. |
PROC_1 : |
MOV M, A |
; Записать содержимое Акк в ячейку по адресу из HL. |
|
INX H |
; Инкрементация регистровой пары HL. |
|
MOV A, B |
; Записать исходное число в Акк. |
|
RET |
;Возврат из подпрограммы. |
Табл. 2.2. Результаты выполнения программы Прогр. 2 .2.
№ |
A |
CMA |
INR |
DCR |
ADD |
ANA |
ORA |
CMP |
DAA |
1 |
1Eh |
E1h |
1Fh |
1Dh |
3Ch |
1Eh |
1Eh |
1Eh |
30 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Задание 2.3. Исследование программы по выполнению арифметических и логических операций с двумя операндами (один из операндов – аккумулятор).
Порядок выполнения задания:
Ввести программу Прогр. 2 .3, исправить ошибки, осуществить пуск.
Исследовать процесс выполнения программы в пошаговом режиме (обратить особое внимание на изменения регистра флагов).
Заменяя в третьей строке программы число, записываемое в регистр C, исследовать программу при различном значении этого числа.
Занести результаты выполнения программы в таблицу Табл. 2 .3 (см. ниже, числа в таблицу заносить в 16-ричной системе счисления).
Прогр. 2.3. Программа по выполнению арифметических и логических операций с двумя операндами.
|
LHLD 0100h |
;В HL адрес ячейки памяти (начало массива). |
|
MVI B, 7Ch |
;Записать число в регистр B (первый операнд). |
|
MVI C, 1Eh |
;Записать число в регистр C (второй операнд). |
|
MOV A, B |
; Записать 1-й операнд в Акк. |
|
ADD C |
;1. Сложение операндов. |
|
CALL PROC_1 |
; Переход на подпрограмму PROC_1. |
|
SUB C |
;2. Вычитание 2-го операнда из 1-го. |
|
CALL PROC_1 |
; Переход на подпрограмму PROC_1. |
|
ANA C |
;3. Выполнение над операндами операции лог. И. |
|
CALL PROC_1 |
; Переход на подпрограмму PROC_1. |
|
ORA C |
;4. Выполнение над операндами операции лог. ИЛИ. |
|
CALL PROC_1 |
; Переход на подпрограмму PROC_1. |
|
XRA C |
;5. Выполнение над операндами операции лог. исключающего ИЛИ. |
|
CALL PROC_1 |
; Переход на подпрограмму PROC_1. |
|
CMP C |
;6. Сравнение операндов. |
|
CALL PROC_1 |
; Переход на подпрограмму PROC_1. |
|
HLT |
;Завершение программы. |
PROC_1 : |
MOV M, A |
; Записать результат (Акк) в ячейку по адресу из HL. |
|
INX H |
; Инкрементация регистровой пары HL. |
|
MOV A, B |
; Записать исходное число в Акк. |
|
RET |
;Возврат из подпрограммы. |
Табл. 2.3. Результаты выполнения программы Прогр. 2 .3.
№ |
B |
C |
ADD |
SUB |
ANA |
ORA |
XRA |
CMP |
1 |
7Ch |
1Eh |
9Ah |
5Eh |
1Ch |
7Eh |
62 |
7C |
2 |
7Ch |
|
|
|
|
|
|
|
|
7Ch |
|
|
|
|
|
|
|
Задание 2.4. Исследование программы сравнения двух чисел из памяти и записи большего из них обратно в память.
Порядок выполнения задания:
Ввести программу, разработанную при выполнении п. 5 задания для самоподготовки (см. выше).
Осуществить пуск программы и проверить результат сравнения следующих чисел: 33h и 2Eh, D8h и 25h, 98h и A5h.