ПРАКТИКУМ ПО ОМПТ. Практикум по основам микропроцессорной техники Саранск 2003 удк 004. 384 378. 146147
Скачать 0.74 Mb.
|
5.3. Контрольная работа №3. Программирование на ассемблереРазработать программу на языке ассемблера микропроцессора КР580ВМ80А в соответствии с заданным вариантом. Вариант 1X1 и X2 - 16-битные числа без знака, находящиеся в ОЗУ с начальными адресами ADR1 и ADR2. Выполнить вычитание X1 - X2 и занести результат в ОЗУ с адреса ADR3. Вариант 2X - 16-битное число без знака, находящееся в ОЗУ с начальным адресом ADR1, CONST - 16-битная константа. Выполнить вычитание X - CONST и занести результат в ОЗУ с адреса ADR2. Вариант 3X - 16-битное число со знаком, находящееся в регистровой паре B. Сравнить X с 16-битной константой CONST и установить в ОЗУ по адресу ADR признак FLAG согласно условиям: FLAG = 0, если X >= CONST; FLAG = FFH, если X < CONST. Вариант 4X1 и X2 - 16-битные числа со знаком, находящиеся в регистровых парах B и D. Сравнить X1 и X2 и установить в ОЗУ по адресу ADR признак FLAG согласно условиям: FLAG = 0, если X1 > X2; FLAG = FFH, если X <= X2. Вариант 5X - 16-битное число без знака, находящееся в регистровой паре B. Сравнить X с 16-битной константой CONST и установить в ОЗУ по адресу ADR признак FLAG согласно условиям: FLAG = 0, если X >= CONST; FLAG = FFH, если X < CONST. Вариант 6X1 и X2 - 16-битные числа без знака, находящиеся в регистровых парах B и D. Сравнить X1 и X2 и установить в ОЗУ по адресу ADR признак FLAG согласно условиям: FLAG = 0, если X1 > X2; FLAG = FFH, если X <= X2. Вариант 7X - 8-битное число со знаком, находящееся в ОЗУ по адресу ADR. Выполнить преобразование X в 16-битное число, т.е. занести в ОЗУ старший байт числа по адресу ADR+1. Примечание: старший байт = 0, если X >= 0; старший байт = FFH, если X<0. Вариант 8X1 и X2 - 8-битные числа со знаком, находящиеся в ОЗУ по адресам ADR1 и ADR2. Сложить X1 и X2 с анализом арифметического переполнения. Установить признак переполнения OVR: OVR = 0, если переполнения нет; OVR = FFH, если есть переполнение. Результат сложения и признак OVR занести в ОЗУ по адресам ADR3 и ADR3+1. Вариант 9X - 8-битное число со знаком, находящееся в ОЗУ по адресу ADR1, CONST - константа. Сложить X и CONST с анализом арифметического переполнения. Установить признак переполнения OVR: OVR = 0, если переполнения нет; OVR = FFH, если есть переполнение. Результат сложения и признак OVR занести в ОЗУ по адресам ADR2 и ADR3. Вариант 10X1 и X2 - 8-битные числа без знака, находящиеся в ОЗУ по адресам ADR1 и ADR2. Сложить X1 и X2 с анализом арифметического переполнения. Установить признак переполнения OVR: OVR = 0, если переполнения нет; OVR = FFH, если есть переполнение. Результат сложения и признак OVR занести в ОЗУ по адресам ADR3 и ADR3+1. Вариант 11X - 8-битное число без знака, находящееся в ОЗУ по адресу ADR1, CONST - константа. Сложить X и CONST с анализом арифметического переполнения. Установить признак переполнения OVR: OVR = 0, если переполнения нет; OVR = FFH, если есть переполнение. Результат сложения и признак OVR занести в ОЗУ по адресам ADR2 и ADR3. Вариант 12X – 8-битный код, находящийся в порту ввода P1. Выполнить маскирование (сброс) нечетных разрядов X и инвертирование четных разрядов, результат обработки вывести в порт P2. Вариант 13X – 8-битный код, находящийся в порту ввода P1. Выполнить маскирование (сброс) старшей тетрады X и, если результат обработки ненулевой, то вывести его в порт P2. Вариант 14Осуществить последовательный вывод в порт P1 8-битных значений X, изменяющихся от 0 до XMAX. Величина XMAX находится в порту P2. Вариант 15X1 и X2 - 16-битные числа со знаком, находящиеся в ОЗУ с начальными адресами ADR1 и ADR2. Выполнить вычитание X1 - X2 и занести результат в ОЗУ с адреса ADR3. Вариант 16X - 16-битное число со знаком, находящееся в ОЗУ с начальным адресом ADR1, CONST - 16-битная константа. Выполнить вычитание X - CONST и занести результат в ОЗУ с адреса ADR2. Вариант 17X - 8-битный код, находящийся в ОЗУ по адресу ADR1. Выполнить логический сдвиг X вправо на N разрядов, где N - константа программы. Результат сдвига занести в ОЗУ по адресу ADR2. Вариант 18X - 8-битный код, находящийся в ОЗУ по адресу ADR1. Выполнить циклический сдвиг X влево на N разрядов, где N - константа программы. Результат сдвига занести в ОЗУ по адресу ADR2. Вариант 19X - 16-битный код, находящийся в регистровой паре B. Выполнить логический сдвиг X влево на N разрядов, где N - константа программы. Результат сдвига занести в ОЗУ с адреса ADR. Вариант 20X - 16-битный код, находящийся в регистровой паре B. Выполнить логический сдвиг X вправо на N разрядов, где N - константа программы. Результат сдвига занести в ОЗУ с адреса ADR. Вариант 21X - 8-битный код, находящийся в ОЗУ по адресу ADR1. Выполнить перестановку тетрад в коде X. Результат занести в ОЗУ по адресу ADR2. Вариант 22X - символ 16-ричной цифры в коде ASCII, находящийся в ОЗУ по адресу ADR1. Преобразовать символ X в двоичное число, результат занести в ОЗУ по адресу ADR2. Примечание: коды ASCII символов "0"-"9" - 30H-39H, символов "A"-"F" - 41H-46H. Вариант 23X1 и X2 - распакованные 16-ричные числа (младшая тетрада – число от 0 до F, старшая - 0), находящиеся в ОЗУ по адресам ADR1 и ADR1+1. Преобразовать X1 и X2 в упакованный двоичный код (байт), результат занести в ОЗУ по адресу ADR2. Примечание: X1 - старший разряд 16-ричного числа, X2 -младший. Вариант 24X - распакованное 16-ричное число (младшая тетрада – число от 0 до F, старшая - 0), находящееся в ОЗУ по адресу ADR1. Преобразовать X в символ в коде ASCII, результат занести в ОЗУ по адресу ADR2. Примечание: коды ASCII символов "0"-"9" - 30H-39H, символов "A"-"F" - 41H-46H. Вариант 25Заполнить область памяти, начиная с адреса ADR1, размером N байт константой CONST. Значения N и CONST - переменные, находящиеся в памяти по адресам ADR2 и ADR3. Вариант 26X(N) - массив из N 8-битных элементов, размещенный в памяти, начиная с адреса ADR1; N <= 255 - константа программы. Переместить X(N) в новую область с адреса ADR2. Примечание: области памяти не перекрываются. Вариант 27X(N) - массив из N 8-битных чисел без знака, размещенный в памяти, начиная с адреса ADR; N <= 255 - константа программы. Найти максимальный элемент массива и сохранить его в аккумуляторе. Вариант 28X(N) - массив из N 8-битных чисел со знаком, размещенный в памяти, начиная с адреса ADR; N <= 255 - константа программы. Найти минимальный элемент массива и сохранить его в аккумуляторе. Вариант 29X(N) - массив из N 8-битных значений, считываемых последовательно из порта P1; N <= 255 - константа программы. Просуммировать элементы массива и вывести сумму в порт P2. Примечание: полагать, что сумма – 8-битное число. Вариант 30X(N) и Y(N) - массивы из N 8-битных чисел, размещенные в памяти, начиная с адресов ADR1 и ADR2; N <= 255 - константа программы. Сформировать массив Z = X Y и разместить его в памяти с адреса ADR3. В большинстве вариантов данной контрольной работы фигурируют либо “числа со знаком”, либо “числа без знака”. Необходимо помнить, что при сравнении чисел со знаком анализируется флаг знака S из регистра признаков (например, при помощи команд JP или JM), а при сравнении чисел без знака анализируется флаг переноса CY (если первое число больше или равно второму, то флаг переноса сбрасывается, иначе – устанавливается). ЛИТЕРАТУРАМикропроцессоры: В 3-х кн.: Учеб. пособие для втузов /Под ред. Л.Н.Преснухина. - М.: Высш. шк., 1986. – 495 с. Фрир Дж. Построение вычислительных систем на базе перспективных микропроцессоров: Пер. с англ. – М.: Мир, 1990. – 413 с. Программирование микропроцессорных систем: Учеб. пособие для вузов /Под ред. В.Ф.Шаньгина. – М.: Высш. шк., 1990. – 303 с. Мирский Г.Я. Микропроцессоры в измерительных приборах. – М.: Радио и связь, 1984. – 160 с. Уильямс Г.Б. Отладка микропроцессорных систем: Пер. с англ. – М.: Энергоатомиздат, 1988. – 253 с. Балашов Е.П., Григорьев В.Л., Петров Г.А. Микро- и мини-ЭВМ: Учеб. пособие для вузов. – Л.: Энергоатомиздат, 1984. – 376 с. Каган Б.М. Электронные вычислительные машины и системы: Учеб. пособие для вузов. 2-е изд. – М.: Энергоатомиздат, 1985. – 522 с. Каган Б.М., Сташин В.В. Основы проектирования микропроцессорных устройств автоматики. - М.: Энергоатомиздат, 1987. - 304 с. Коффрон Дж. Технические средства микропроцессорных систем: Практический курс. - М.: Мир, 1983. - 344 с. Коффрон Дж., Лонг В. Расширение микропроцессорных систем. - М.: Машиностроение, 1987. - 320 с. Шевкопляс Б.В. Микропроцессорные структуры: Инженерные решения: Справочник. 2-е изд. - М.: Радио и связь, 1990. - 512 с. Дао Л. Программирование микропроцессора 8088. - М.: Мир, 1988. - 357 с. Микропроцессорный комплект К1810: Структура, программирование, применение: Справочная книга /Под ред. Ю.М.Казаринова. - М.: Высш. шк., 1990. - 269 с. Фридмен М., Ивенс Л. Проектирование систем с микрокомпьютерами. - М.: Мир, 1986. - 405 с. Фергусон Дж., Макари Л., Уилльямз П. Обслуживание микропроцессорных систем. - М.: Мир, 1989. - 336 с. Микропроцессоры и микро-ЭВМ в системах автоматического управления: Справочник /С.Т.Хвощ, Н.Н.Варлинский, Е.А.Попов; Под ред. С.Т.Хвоща. - Л.: Машиностроение. Ленингр. отд-ние, 1987. - 640 с. Сташин В.В., Урусов А.В., Мологонцева О.Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. - М.: Энергоатомиздат, 1990. - 224 с. Басманов А.С., Широков Ю.Ф. Микропроцессоры и однокристальные микроЭВМ: Номенклатура и функциональные возможности /Под ред. В.Г.Домрачева. - М.: Энергоатомиздат, 1988. - 128 с. (сер. “Микропроцессорные БИС и их применение”) Рафикузаман М. Микропроцессоры и машинное проектирование микропроцессорных систем: В 2-х кн.: Пер. с англ. - М.: Мир, 1988. Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов: Учеб. пособие для вузов. – М.: Радио и связь, 1988. – 368 с. СОДЕРЖАНИЕВВЕДЕНИЕ 1. ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В ЦИФРОВЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИНАХ И МИКРОПРОЦЕССОРНЫХ СИСТЕМАХ 1.1. Системы счисления 1.2. Перевод чисел из одной системы счисления в другую 1.3. Формы представления чисел 1.4. Кодирование символов и знаков 1.5. Выполнение арифметических операций над числами с фиксированной запятой 1.6. Выполнение арифметических операций над числами с плавающей запятой 2. СИСТЕМА КОМАНД АССЕМБЛЕРА МИКРОПРОЦЕССОРА К580ВМ80 2.1 Программная модель микропроцессора 2.2 Форматы команд и способы адресации 2.3. Условные обозначения в системе команд 2.4. Команды передачи данных 2.5. Команды обработки данных 2.6. Команды управления 2.7. Машинные коды команд 3. СРЕДСТВА ОТЛАДКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 3.1 Учебно-отладочное устройство «Электроника-580» 3.1.1. Общие сведения 3.1.2. Устройство и работа УОУ 3.1.3. Клавиатура пульта управления 3.1.4. Индикатор адреса и данных 3.1.5. Просмотр и изменение содержимого памяти и регистров 3.1.6. Работа с контрольными точками 3.1.7. Выполнение программ пользователя 3.2. Кросс-средства отладки программного обеспечения 3.2.1. Составление исходной программы 3.2.2. Программа ассемблирования АVMAC 3.2.3. Программа редактора связей AVLINK 3.2.4. Программа отладчика-эмулятора AVSIM 4. ЗАДАНИЯ И ПРАКТИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ 4.1. Лабораторная работа №1. Простые вычисления 4.2. Лабораторная работа №2. Управление индикацией 4.3. Лабораторная работа №3. Объединение программ 4.4. Лабораторная работа №4. Сложные вычисления 4.5. Пример программы к лабораторной работе №1 4.6. Пример программы к лабораторной работе №2 4.7. Рекомендации по построению программы к лабораторной работе № 3 4.8. Пример программы к лабораторной работе №4 5. ЗАДАНИЯ ДЛЯ КОНТРОЛЬНЫХ РАБОТ 5.1. Контрольная работа №1. Системы счисления и коды 5.2. Контрольная работа №2. Микропроцессорные системы 5.3. Контрольная работа №3. Программирование на ассемблере ЛИТЕРАТУРА |