Лабораторная работа № 3 Исследование методов программирование арифметических операций.
1. Цель работы
Изучить систему команд 8-разрядного микропроцессора и исследовать методы программирования арифметических операций на языке ассемблера процессора КР 580.
2. Программа исследований
2.1. Изучить и записать команды арифметических операций на языке Ассемблера для МП типа КР 580ВМ80.
2.2. Составить алгоритмы и программы сложения массива однобайтных чисел с получением двухбайтного результата.
2.3. Составить алгоритмы подпрограмм вычитания, умножения и деления двух однобайтных чисел.
2.4. Произвести отладку разработанных программ в пошаговом режиме и проследить за изменениями содержимых регистров.
2.5. Сохранить текст программы и результаты вычислений в файле на своей дискете.
2.6. Рассчитать быстродействие выполнения каждой из программ.
Примечание:
1) п. п. 2.1-2.3 выполняются в процессе домашней подготовки;
2) длина массива однобайтных чисел определяется двумя последними цифрами зачетной книжки студента.
3. Методика выполнения работы
3.1. Используя средства любого текстового редактора создать файл с программой (например lab3.asm).
3.2. Произвести ассемблирование программы, получив файл, содержащий машинные команды и листинг программы: аasm. exe lab3.asm /l+ /е+.
3.3. Произвести запуск отладчика: 580ехе.
3.4. В среде отладчика произвести загрузку файла в память.
3.5. Выполнить программу по шагам в среде отладчика, записывая в отчет содержимое изменяемых регистров и памяти после каждой команды.
4. Содержание отчета
4.1. Цель и программа работы.
4.2. Текст и листинг ассемблерных программ для заданного варианта.
4.3. Расчет времени выполнения программ.
4.4. Выводы по работе.
5. Контрольные вопросы
5.1. Запишите команды арифметических операций и поясните использование регистров процессора при каждой операции.
5.2. После каких команд можно осуществлять десятичную коррекцию числа, находящегося в аккумуляторе?
5.3. Как оценить максимальное время выполнения подпрограммы?
5.4. Приведите примеры операций сложения и вычитания восьмиразрядных чисел и покажите, как изменяется значения флаговых битов.
5.5. В чем отличие команд MOV и MVI, ADD и ADI, ADD и ADC?
5.6. Для чего в подпрограммах арифметических операций используются команды PUSH и POP?
5.7. Расскажите по структурной схеме МП К580ВМ80, какие блоки и в какой последовательности срабатывают при выполнении подпрограмм умножения и деления.