- •А.М. Формакидов
- •М.А. Григорьев
- •Содержание
- •Предисловие
- •Описание лабораторного макета
- •Устройство и принцип работы умк
- •Указания мер безопасности
- •Подготовка умк к работе
- •Подготовка к работе макетного тэз м1
- •Теоретическая часть Директива «Индикация и изменение содержимого оперативного запоминающего устройства»
- •Директива «Идентификация и изменение содержимого регистров»
- •Формат директивы:
- •Директива «Заполнение массива памяти константой»
- •Формат директивы:
- •Директива «Определение контрольной суммы массива памяти»
- •Формат директивы:
- •Директива «Перемещение массива памяти в адресном пространстве»
- •Формат директивы:
- •Директива «Передача управления программе пользователя»
- •Формат директивы:
- •Последовательность нажатия клавиш:
- •Задание для выполнения лабораторной работы
- •Состав отчета по лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа №2 «Исследование простейших команд, запуск и выполнение простых программ»
- •Порядок выполнения работы
- •Теоретическая часть
- •Задание для выполнения лабораторной работы
- •Состав отчета по лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа №3 «Режимы адресации. Исследование выполнения команд арифметических и логических операций»
- •Порядок выполнения работы
- •Теоретическая часть
- •Задание для выполнения лабораторной работы
- •Состав отчета по лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа №4 «Исследование выполнения команд пересылки данных, управления, ввода-вывода и работы со стеком»
- •Порядок выполнения работы
- •Теоретическая часть
- •Задание для выполнения лабораторной работы
- •Состав отчета по лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа №5 «Изучение машинных циклов команд мп кр580вм80а. Выполнение арифметических операций умножения и деления»
- •Порядок выполнения работы
- •Теоретическая часть
- •Задание для выполнения лабораторной работы
- •Состав отчета по лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа №6 «Программирование и режим работы программируемого параллельного интерфейса. Управление клавиатурой и дисплеем с помощью программируемого параллельного интерфейса кр580вв55»
- •Порядок выполнения работы
- •Теоретическая часть
- •Задание для выполнения лабораторной работы
- •Состав отчета по лабораторной работе
- •Контрольные вопросы
- •Система команд микропроцессора кр580вм80а
Задание для выполнения лабораторной работы
1. Исследование команд арифметических операций
1.1. Выполнить операцию сложения двух однобайтных чисел с применением различных режимов адресации: ADD RS, ADD M, ADI B2.
Таблица 17
Программа сложения двух однобайтных чисел (регистровая адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E 04 |
MVI A, |
04 |
(A) ← 04 |
0802 |
06 08 |
MVI B, |
08 |
(B) ← 08 |
0804 |
80 |
ADD B |
|
(A) ← (A) + (B) |
0805 |
FF |
RST 7 |
|
Прервать выполнение программы |
Просмотреть и зафиксировать в отчете содержимое регистров А, В, F.
Таблица 18
Программа сложения двух однобайтных чисел (регистровая косвенная адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
21 40 08 |
LXI H, |
0840 |
(HL) ← 0840 |
0803 |
3E 04 |
MVI A, |
04 |
(A) ← 04 |
0805 |
36 08 |
MVI M, |
08 |
M ← 08 |
0807 |
86 |
ADD M |
|
(A) ← (A) + (M) |
0808 |
FF |
RST 7 |
|
Прервать выполнение программы |
Просмотреть и зафиксировать в отчете содержимое регистров А, М (виртуальный регистр), F, регистровой пары HL.
Таблица 19
Программа сложения двух однобайтных чисел (непосредственная адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E 04 |
MVI A, |
04 |
(A) ← 04 |
0802 |
С6 1F |
ADI |
1F |
(A) ← (A) + 1F |
0804 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Просмотреть и зафиксировать в отчете содержимое регистров А, F.
1.2. Выполнить операцию вычитания двух однобайтных чисел с применением различных режимов адресации: SUB RS, SUB M, SUI B2.
Таблица 20
Программа вычитания двух однобайтных чисел (регистровая адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E 08 |
MVI A, |
08 |
(A) ← 08 |
0802 |
0E 06 |
MVI C, |
06 |
(C) ← 06 |
0804 |
91 |
SUB C |
|
(A) ← (A) – (C) |
0805 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Просмотреть и зафиксировать в отчете содержимое регистров А, С, F.
Таблица 21
Программа вычитания двух однобайтных чисел (регистровая косвенная адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
21 40 08 |
LXI H, |
0840 |
(HL) ← 0840 |
0803 |
3E 08 |
MVI A, |
08 |
(A) ← 08 |
0805 |
36 06 |
MVI M, |
06 |
(M) ← 06 |
0807 |
96 |
SUB M |
|
(A) ← (A) – (M) |
0808 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Просмотреть и зафиксировать в отчете содержимое регистров А, М, F, регистровой пары HL.
Таблица 22
Программа вычитания двух однобайтных чисел (непосредственная адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E 1F |
MVI A, |
1F |
(A) ← 1F |
0802 |
D6 1F |
SUI |
1F |
(A) ← (A) – 1F |
0804 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Просмотреть и зафиксировать в отчете содержимое регистров А, F.
1.3. Выполнить операцию сложения двух двухбайтных чисел с применением одной из команд: ADС RS, ADС M, AСI B2.
Таблица 23
Программа сложения двух двухбайтных чисел (регистровая адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E 8A |
MVI A, |
8A |
(A) ← 8A |
0802 |
06 B4 |
MVI B, |
B4 |
(B) ← B4 |
0804 |
80 |
ADD B |
|
(A) ← (A) + (B) |
0805 |
32 50 08 |
STA |
0805 |
M(0850) ← (A) |
0808 |
3E 08 |
MVI A, |
08 |
(A) ← 08 |
080A |
06 10 |
MVI B, |
10 |
(B) ← 10 |
080C |
88 |
ADC B |
|
(A) ← (A) + (B) + C |
080D |
32 51 08 |
STA |
0851 |
M(0851) ← (A) |
0810 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Данная программа выполняет операцию 088А16+10В416. Сначала складываются младшие байты чисел, затем старшие с учетом переноса в старший байт. Младший байт суммы содержится в ячейке памяти 0850, старший байт суммы в ячейке памяти 0851. Проверить результат сложения. Проверить и зафиксировать в отчете содержимое регистра F после сложения младших и старших байтов, а также результат сложения.
1.4. Выполнить операцию вычитания двух двухбайтных чисел с применением одной из команд: SВB RS, SВB M, SВI B2.
Таблица 24
Программа вычитания двух двухбайтных чисел (непосредственная адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E 27 |
MVI A, |
27 |
(A) ← 27 |
0802 |
D6 83 |
SUI |
83 |
(A) ← (A) – 83 |
0804 |
32 50 08 |
STA |
0850 |
M(0850) ← (A) |
0807 |
3E 21 |
MVI A, |
21 |
(A) ← 21 |
0809 |
DE 10 |
SBI |
10 |
(A) ← (A) – 10 – C |
080B |
32 51 08 |
STA |
0851 |
M(0851) ← (A) |
080E |
FF |
RST 7 |
|
Прервать выполнение Программы |
Данная программа выполняет операцию 212716 – 108316. Сначала из младшего байта уменьшаемого вычитается младший байт вычитаемого, результат помещается в ячейку памяти 0850. Далее с учетом заема в младший байт из старшего байта уменьшаемого вычитается старший байт вычитаемого, результат помещается в ячейку памяти 0851. Проверить результат вычитания. Проверить и зафиксировать в отчете содержимое регистра F после вычитания младших и старших байтов, а также результат вычитания чисел – ячейки памяти 0850 (младший байт разности) и 0851 (старший байт разности).
1.5. Выполнить задания пунктов 1.3 и 1.4, используя другие режимы адресации.
1.6. Разработать и исследовать на УМК программу сложения 5 произвольных однобайтных чисел, используя все режимы адресации. Проверить и зафиксировать в отчете содержимое всех регистров и ячеек памяти, используемых в разработанной программе.
2. Исследование команд логических операций
2.1. Выполнить операцию логического умножения чисел 101000112 (A316) и 100010112 (8B16) с помощью любой команды: ANA RS, ANA M, ANA B2.
Таблица 25
Программа логического умножения двух однобайтных чисел (регистровая адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E A3 |
MVI A, |
A3 |
(A) ← A3 |
0802 |
06 8B |
MVI B, |
8B |
(B) ← 8B |
0804 |
A0 |
ANA B |
|
|
0805 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить правильность результата и зафиксировать в отчете содержимое регистров А, B, F.
2.2. С помощью байта-маски сбросить 1 и 4 биты байта 001100112 (3316) с применением одной из команд: ANA RS, ANA M, ANA B2.
Таблица 26
Программа логического умножения двух однобайтных чисел (регистровая косвенная адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
21 40 08 |
LXI H, |
0840 |
(HL) ← 0840 |
0803 |
3E 33 |
MVI A, |
33 |
(A) ← 33 |
0805 |
36 ED |
MVI M, |
ED |
(M) ← ED |
0807 |
A6 |
ANA M |
|
|
0808 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить и зафиксировать в отчете содержимое регистров А, M, F.
2.3. Выполнить операцию логического сложения чисел 101000112 (А316) и 100010112 (8В16) с применением одной из команд: ORA RS, ORA M, ORI B2.
Таблица 27
Программа логического сложения двух однобайтных чисел (регистровая косвенная адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
21 40 08 |
LXI H, |
0840 |
(HL) ← 0840 |
0803 |
3E A3 |
MVI A, |
A3 |
(A) ← A3 |
0805 |
36 8B |
MVI M, |
8B |
(M) ← 8B |
0807 |
B6 |
ORA M |
|
|
0808 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить и зафиксировать в отчете содержимое регистров А, M, F.
2.4. С помощью байта-маски установить 3 и 7 биты байта 001100112 (3316) с применением одной из команд: ORA RS, ORA M, ORI B2.
Таблица 28
Программа логического сложения двух однобайтных чисел (регистровая адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E 33 |
MVI A, |
33 |
(A) ← 33 |
0802 |
0E 88 |
MVI C, |
88 |
(C) ← 88 |
0804 |
B1 |
ORA C |
|
|
Продолжение таблицы 29
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0805 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить и зафиксировать в отчете содержимое регистров А, C, F.
2.5. С помощью команды СМА инвертировать число 100010102 (8А16).
Таблица 30
Программа побитного инвертирования содержимого аккумулятора
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E 8A |
MVI A, |
8A |
(A) ← 8A |
0802 |
2F |
CMA |
|
|
0803 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить и зафиксировать в отчете содержимое регистров А, F.
2.6. Инвертировать флаг переноса регистра F.
Таблица 31
Программа инвертирования флага переноса регистра F
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3F |
CMC |
|
|
0802 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить и зафиксировать в отчете содержимое регистра F до и после выполнения программы.
2.7. Инвертировать 1, 3 и 7 биты байта 101100012 (В116) с помощью байта-маски, используя одну из команд: XRA RS, XRA M, XRI B2.
Таблица 32
Программа выполнения команды исключающего ИЛИ (регистровая адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E B1 |
MVI A, |
B1 |
(A) ← B1 |
Продолжение таблицы 32
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0802 |
0E 8A |
MVI C, |
8A |
(C) ← 8A |
0804 |
A9 |
XRA C |
|
|
0805 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить и зафиксировать содержимое регистров А, C, F.
2.8. Поразрядно сравнить два числа 101100012 и В116, используя одну из команд: XRA RS, XRA M, XRI B2.
Таблица 33
Программа поразрядного сравнения двух однобайтовых чисел (непосредственная адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E B1 |
MVI A, |
B1 |
(A) ← B1 |
0802 |
EE B1 |
XRI |
|
|
0804 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить и зафиксировать в отчете содержимое регистров А, F.
2.9. Выполнить задания пунктов 2.1 – 2.4, 2.7, 2.8 используя другие режимы адресации.
3. Исследование команд вспомогательных логических и арифметических операций
3.1. Сравнить числа 3D16 и 2216, 3D16 и 8F16, 3D16 и 3D16, используя одну из команды: CMP RS, CMP M, CPI B2.
Таблица 34
Программа сравнения двух однобайтных чисел (регистровая адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E 3D |
MVI A, |
3D |
(A) ← 3D |
0802 |
06 22 |
MVI B, |
22 |
(B) ← 22 |
0804 |
B8 |
CMP B |
0850 |
(F) ← (A) – (B) |
0805 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить и зафиксировать в отчете содержимое регистров А, B, F.
Таблица 35
Программа сравнения двух однобайтных чисел (регистровая косвенная адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
21 40 08 |
LXI H, |
0840 |
(HL) ← 0840 |
0803 |
3E 3D |
MVI A, |
3D |
(A) ← 3D |
0805 |
36 8F |
MVI M, |
8F |
(M) ← 8F |
0807 |
BE |
CMP M |
|
(F) ← (A) – (M) |
0808 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить и зафиксировать содержимое регистров А, M, F.
Таблица 36
Программа сравнения двух однобайтных чисел (непосредственная адресация)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E 3D |
MVI A, |
3D |
(A) ← 3D |
0802 |
FE 3D |
CPI |
3D |
(F) ← (A) – 3D |
0804 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить и зафиксировать в отчете содержимое регистров А, F.
3.2. Задан массив чисел: 0А00 ← 0116; 0А01 ← 0516; 0А02 ← 0216; 0А03 ← 0116. Пользуясь командами INX R и DCX R, определить сумму элементов массива. Перед выполнением программы необходимо ввести массив в память.
Таблица 37
Программа поиска суммы элементов массива (команда INX R)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
21 01 0A |
LXI H, |
0A01 |
(HL) ← 0A01 |
0803 |
3A 00 0A |
LDA |
0A00 |
(A) ← (0A00) |
0806 |
86 |
ADD M |
|
(A) ← (A) + (M) |
0807 |
23 |
INX H |
|
(HL) ← (HL) + 1 |
0808 |
86 |
ADD M |
|
(A) ← (A) + (M) |
0809 |
23 |
INX H |
|
(HL) ← (HL) + 1 |
Продолжение таблицы 37
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
080A |
86 |
ADD M |
|
(A) ← (A) + (M) |
080B |
FF |
RST 7 |
|
Прервать выполнение Программы |
Таблица 38
Программа поиска суммы элементов массива (команда DCX R)
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
21 02 0A |
LXI H, |
0A02 |
(HL) ← 0A02 |
0803 |
3A 03 0A |
LDA |
0A03 |
(A) ← (0A03) |
0806 |
86 |
ADD M |
|
(A) ← (A) + (M) |
0807 |
2B |
DCX H |
|
(HL) ← (HL) – 1 |
0808 |
86 |
ADD M |
|
(A) ← (A) + (M) |
0809 |
2B |
DCX H |
|
(HL) ← (HL) – 1 |
080A |
86 |
ADD M |
|
(A) ← (A) + (M) |
080B |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить и зафиксировать в отчете содержимое регистров А, F.
3.3. Задан массив чисел: 0А00 ← 0116; 0А01 ← 0516; 0А02 ← 0216; 0А03 ← 0116. Пользуясь командами INR M и DCR M уменьшить 1 и 2 элементы массива на единицу, 3 и 4 элементы массива увеличить на единицу. Перед выполнением программы необходимо ввести массив в память.
Таблица 39
Программа уменьшения и увеличения на 1 элементов массива
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
21 00 0A |
LXI H, |
0A00 |
(HL) ← 0A00 |
0803 |
35 |
DCR M |
0A03 |
(M) ← (M) – 1 |
0804 |
23 |
INX H |
|
(HL) ← (HL) + 1 |
0805 |
35 |
DCR M |
|
(M) ← (M) – 1 |
0806 |
23 |
INX H |
|
(HL) ← (HL) + 1 |
0807 |
34 |
INR M |
|
(M) ← (M) + 1 |
0808 |
23 |
INX H |
|
(HL) ← (HL) + 1 |
0809 |
34 |
INR M |
|
(M) ← (M) + 1 |
080A |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить правильность выполнения программы. Записать исходный и модифицированный массивы данных.
3.4. Определите сумму трех однобайтных чисел, находящихся по адресам 0921 (0316), 0A10 (0516), 0BC9 (0116), пользуясь командой сложения содержимого регистровых пар DAD R. Предварительно необходимо записать числа в память.
Таблица 40
Программа поиска суммы чисел массива
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E 00 |
MVI A, |
00 |
(A) ← 00 |
0802 |
21 21 09 |
LXI H, |
0921 |
(HL) ← 0921 |
0805 |
86 |
ADD M |
|
(A) ← (A) + (M) |
0806 |
01 EF 00 |
LXI B, |
00EF |
(BC) ← 00EF |
0809 |
09 |
DAD B |
|
(HL) ← (HL) + (BC) |
080A |
86 |
ADD M |
|
(A) ← (A) + (M) |
080B |
11 B9 01 |
LXI D, |
01B9 |
(DE) ← 01B9 |
080E |
19 |
DAD D |
|
(HL) ← (HL) + (DE) |
080F |
86 |
ADD M |
|
(A) ← (A) + (M) |
0810 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить правильность выполнения программы. Записать содержимое регистров A, F, M, регистровых пар HL, BC, DE.
3.5. Найти сумму двух десятичных однобайтных чисел 7710 и 1810.
Таблица 41
Программа суммы двух десятичных однобайтных чисел
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3E 77 |
MVI A, |
77 |
(A) ← 77 |
0802 |
C6 18 |
ADI |
18 |
(A) ← (A) + 18 |
0804 |
27 |
DAA |
|
(A)10 ← (A)16 |
0805 |
FF |
RST 7 |
|
Прервать выполнение Программы |
Проверить и зафиксировать в отчете содержимое регистров А, F.
