- •Изучение учебно-отладочного устройства
- •1. Самостоятельная работа
- •Программа сложения трех чисел на э580
- •2. Содержание и порядок выполнения лабораторной работы
- •3. Содержание отчета
- •4. Контрольные вопросы
- •Изучение арифметических команд и команд пересылки данных
- •1. Самостоятельная работа
- •2. Содержание лабораторной работы
- •Программа сложения ряда чисел
- •Программа сложения двух длинных чисел
- •3. Порядок выполнения работы
- •4. Содержание отчета
- •5. Контрольные вопросы
- •Обработка массивов информации организация циклов
- •1. Самостоятельная работа
- •2. Содержание лабораторной работы
- •Выборка из массива данных чисел заданного интервала
- •3. Порядок выполнения работы
- •4. Содержание отчета
- •5. Контрольные вопросы
- •Варианты заданий к лабораторной работе 1
- •Приложение 2 Варианты заданий к лабораторной работе 2
- •Варианты заданий к лабораторной работе 2
- •Приложение 4 Варианты заданий к лабораторной работе 3
- •Варианты заданий к лабораторной работе 3
1. Самостоятельная работа
1.1. Ознакомиться с настоящим описанием.
1.2. Изучить группу команд передачи управления МП К580ИК80А.
1.3. Изучить рекомендуемую литературу [1;2;3] и разделы конспекта лекций по программированию в кодах МП К580ИК80А.
1.4. В соответствии с вариантом задания, выдаваемого преподавателем, составить программу в кодах МП К580ИК80А и подготовить на неё полную документацию, включающую в себя:
- схему алгоритма;
- распределение памяти;
- текст программы в кодах МП К580ИК80А.
1.5. Результаты выполнения самостоятельной работы представить в виде отчета.
2. Содержание лабораторной работы
При программировании часто возникает необходимость в пересылке массива данных из одной области памяти в другую. Такая операция может понадобиться при инициализации элементов массива, при пересылке или формировании строки данных, выводимой на экран дисплея.
Рассмотрим следующую задачу. Массив чисел расположен в области памяти,, начиная с адреса NNNN и состоит из N элементов. Необходимо переслать массив в другую область памяти, начиная с адреса DDDD. В программе для МП К580ИК80А в качестве адресного регистра используется регистровая пара HL. В качестве адресных регистров можно также использовать регистры В и С (регистровая пара ВС), регистры D и Е (регистровая пара DE), но только для выполнения операций перемещения данных в аккумулятор и обратно (с помощью команд LDAX и STAX). Эти адресные регистры нельзя использовать в командах, выполняющих арифметические и логические операции, а также операции пересылки данных в регистры общего назначения или из регистров общего назначения. Необходимо учитывать, что при каждом проходе программа должна изменять содержимое обоих адресных регистров. Один и тот же набор регистров должен совместно использоваться в качестве счетчиков указателя адреса и рабочих ячеек.
В программе пересылки массива из одной области памяти в другую использованы следующие исходные данные и обозначения:
N - количество элементов массива
D - регистр-счетчик, указатель длины массива
HL - адресный указатель исходного массива
NNNN - адрес ячейки памяти, где хранится первое число
исходного массива
ВС - адресный указатель результирующего массива
DDDD - адрес ячейки памяти, с которой начинается результирующий массив
8500 - адрес начала программы
Таблица 1
Пересылка массива информации из одной области памяти в другую
Адрес |
Машинный код |
Метка |
Мнемокод |
Комментарий
|
8500 |
16 |
|
MVI D |
загрузка счетчика |
8501 |
N |
|
|
|
8502 |
21 |
|
LXI Н |
загрузка адресного указателя |
8503 |
NN |
|
|
исходного массива |
8504 |
NN |
|
|
|
8505 |
01 |
|
LXI B |
загрузка адресного указателя |
8506 |
DD |
|
|
результирующего массива |
8507 |
DD |
|
|
|
8508 |
7E |
M2 |
MOV A,M |
пересылка числа из памяти в АКМ |
8509 |
02 |
|
STAX B |
пересылка числа из АКМ в память |
850А |
15 |
|
DCR D |
уменьшение счетчика на единицу |
850В |
CA |
|
JZ, M1 |
пересылка массива закончена? |
850С |
13 |
|
|
|
850D |
85 |
|
|
|
850Е |
23 |
|
INX H |
переход к следующему адресу в HL |
850F |
03 |
|
INX B |
переход к следующему адресу в BC |
8510 |
C3 |
|
JMP, M2 |
организация цикла |
8511 |
08 |
|
|
|
8512 |
85 |
|
|
|
8513 |
00 |
Ml |
NOP |
окончание программы |
Перед выполнением программы исходный массив чисел заносится в память, с помощью командных клавиш, начиная с адреса NNNN (см. Приложение 4).
В ряде случаев возникает необходимость выбрать из массива информации данные, представляющие собой ряд максимальных, либо минимальных вели- чин. Предположим, что необходимо написать программу для решения следующей задачи. Дан массив А1, состоящий из N однобайтовых чисел. Необходимо переписать из массива А1 в массив В1 все числа в диапазоне от Н1 до Н2.
В программе выборки из массива чисел заданного интервала использованы следующие исходные данные и обозначения:
N - количество элементов исходного массива
L - счетчик, указатель длины исходного массива
ВС - адресный указатель исходного массива
NNNN - адрес ячейки памяти, где хранится первое число исходного массива.
DE - адресный указатель результирующего массива
DDDD - адрес ячейки памяти, куда будет записано первое число результирующего массива.
Н1 - нижний предел диапазона выборки
Н2 - верхний предел диапазона выборки
8100 - адрес начала программы
Перед выполнением программы исходный массив чисел А1 заносится в память с помощью командных клавиш, начиная с адреса NNNN (см. Приложение 5)
Таблица 2