Программа сложения двух длинных чисел
Адрес | Машинный код | Метка | Мнемокод | Комментарий |
MVI B | Загрузка счетчика | |||
N | ||||
LXI D | загрузка адресного указателя | |||
NN | первого числа | |||
NN | ||||
LXI H | загрузка адресного указателя | |||
DD | второго числа | |||
DD | ||||
1A | М2 | LDAX D | загрузка операнда в АКМ | |
8E | ADC M | сложение с учетом переноса | ||
830А | STAX D | Запоминание результата сложения | ||
Таблица 2 (продолжение) | ||||
830В | DCR B | Уменьшение счетчика на единицу | ||
830С | CA | JZ, M1 | сложение закончено? | |
830D | ||||
830Е | ||||
830F | INX D | переход к следующему байту | ||
первого числа | ||||
INX H | переход к следующему байту | |||
второго числа | ||||
C3 | JMP, M2 | организация цикла | ||
Ml | NOP | окончание программы |
Перед выполнением программы исходные числа F1 и F2, начиная с младшего байта, заносятся последовательно байт за байтом с помощью командных клавиш в ячейки памяти, начиная с адресов NNNNи DDDD соответственно (см. Приложение 3).
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1.1. Подготовленные в процессе самостоятельной работы команды (пересылки, арифметические и др.) необходимо выполнить в следующей последовательности;
1.2. Записать необходимые операнды с помощью командных клавиш отладочного устройства;
1.3. Записать изучаемую команду в память,
1.4. Выполнить команду в пошаговом режиме;
1.5. Проверить и зафиксировать соответствие ожидаемых и наблюдаемых, результатов, т.е. прочитать содержимое соответствующей ячейки памяти или программно-доступного регистра.
1.6. По заданию преподавателя подготовить и выполнить программы сложения (вычитания) ряда чисел и сложения длинных чисел с переносом (заёмом). Исходные данные необходимо взять из Приложений 2 и 3 соответственно.
СОДЕРЖАНИЕ ОТЧЕТА
1. Краткое описание цели работы и результатов самостоятельной подготовки к лабораторному занятию.
2. Тексты программ выполнения лабораторной работы.
3. Протокол, отражающий последовательность действий на пульте отладочного устройства и результаты выполнения команд МП К580ИК80 с записью последовательности нажатых клавиш на пульте отладочного устройства.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Что такое команда МП?
2. Что такое система команд МП?
3. Назовите группы команд МП К580ИК80?
4. Из каких частей состоит команда МП?
5. Что такое мнемокод?
6. Назовите способы адресации, используемые в МП К580ИК80А?
7. Для чего служат команды пересылки данных?
8. Назовите значения разрядов регистра признаков МП К580ИК80А?
9. Какие из признаков формируются при выполнении команды пересылки данных?
10. После выполнения команды пересылки данных MOV С,В сохраняются ли исходные данные в регистре В?
11. Приведите примеры команд пересылки данных с прямой, косвенной, регистровой адресацией.
12. В каких байтах располагаются младшие и старшие разряды адреса в командах, содержащих адрес ячейки памяти?
13. В ячейке памяти с адресом 8314 находится число F4. Какие команды можно применить для записи его в регистр С?
14. В регистре D находится число Е4. Какие команды можно использовать для записи его в ячейку памяти с адресом 8147?
15. В каких регистрах МП К580ИК80 может храниться адрес ячейки памяти?
16. Для чего служат арифметические (логические команды)?
17. Данные, какой длины может обрабатывать МП К580ИК80А?
18. Где хранятся операнды, и куда помещается результат после выполнения арифметических (логических) команд?
19. Какие разряды в регистре признаков формируются при выполнении арифметических (логических) команд?
20. Для чего используются команды положительного и отрицательного приращения (INR, DCR, INX, DCX)?
21. Как выполняется команда сравнения двух чисел? Где формируется результат выполнения этой команды?
22. Как выполняются команды простого и циклического сдвига содержимого аккумулятора?
23. Над содержимым каких программно-доступных регистров МП К580ИК80А можно выполнить команду сдвига?
ЛАБОРАТОРНАЯ РАБОТА З
ОБРАБОТКА МАССИВОВ ИНФОРМАЦИИ
ОРГАНИЗАЦИЯ ЦИКЛОВ
ЦЕЛЬ РАБОТЫ: Освоить методику программирования в кодах микропроцессора К580ИК80А при обработке массивов, выполнении и отладке программ на устройстве "Электроника 580".
Продолжительность лабораторного занятия - 4 часа, самостоятельная подготовка - 4 часа.
САМОСТОЯТЕЛЬНАЯ РАБОТА
1.1. Ознакомиться с настоящим описанием.
1.2. Изучить группу команд передачи управления МП К580ИК80А.
1.3. Изучить рекомендуемую литературу [1;2;3] и разделы конспекта лекций по программированию в кодах МП К580ИК80А.
1.4. В соответствии с вариантом задания, выдаваемого преподавателем, составить программу в кодахМП К580ИК80А и подготовить на неё полную документацию, включающую в себя:
- схему алгоритма;
- распределение памяти;
- текст программы в кодах МП К580ИК80А.
1.5. Результаты выполнения самостоятельной работы представить в виде отчета.
СОДЕРЖАНИЕ ЛАБОРАТОРНОЙ РАБОТЫ
При программировании часто возникает необходимость в пересылке массива данных из одной области памяти в другую. Такая операция может понадобиться при инициализации элементов массива, при пересылке или формировании строки данных, выводимой на экран дисплея.
Рассмотрим следующую задачу. Массив чисел расположен в области памяти, начиная с адреса NNNN, и состоит из N элементов. Необходимо переслать массив в другую область памяти, начиная с адреса DDDD. В программе для МП К580ИК80А в качестве адресного регистра используется регистровая пара HL. В качестве адресных регистров можно также использовать регистры В и С (регистровая пара ВС), регистры D и Е (регистровая пара DE), но только для выполнения операций перемещения данных в аккумулятор и обратно (с помощью команд LDAX и STAX). Эти адресные регистры нельзя использовать в командах, выполняющих арифметические и логические операции, а также операции пересылки данных в регистры общего назначения или из регистров общего назначения. Необходимо учитывать, что при каждом проходе программа должна изменять содержимое обоих адресных регистров. Один и тот же набор регистров должен совместно использоваться в качестве счетчиков указателя адреса и рабочих ячеек.
В программе пересылки массива из одной области памяти в другую использованы следующие исходные данные и обозначения:
N - количество элементов массива
D - регистр-счетчик, указатель длины массива
HL - адресный указатель исходного массива
NNNN - адрес ячейки памяти, где хранится первое число
исходного массива
ВС - адресный указатель результирующего массива
DDDD - адрес ячейки памяти, с которой начинается результирующий массив
8500 - адрес начала программы
Таблица 1