Практическая работа №13
Тема: Простые программы для микропроцессора типа 8085 (8080) на языке Ассемблер
Цель: Изучение набора команд однокристального 8 - разрядного микропроцессора, исследование выполнения отдельных команд; использование различных методов адресации в программах; запись простых программ.
Вид работы: индивидуальный
Время выполнения: 4 часа.
Теоретические сведения
Ассемблер - это программа, преобразовывающая исходный текст программы, написанной на языке ассемблера, в машинный код. Дополнительно ассемблер может создавать листинг программы с номерами строк, адресами переменных, операторами исходного языка и таблицей перекрестных ссылок символов и переменных, используемых в программе. Совместно с ассемблером используется программа, называемая компоновщиком (linker) или редактором связей (linkage editor). Она объединяет отдельные файлы, созданные ассемблером, в единую исполняемую программу. В блок базовых программ входит также отладчик (debugger) позволяющий программисту пошагово выполнять программу, проверять и изменять содержимое памяти.
Язык Ассемблера является ориентированной на человека формой команд процессора (машинного языка). Машинный язык и язык Ассемблера функционально эквивалентны, но на Ассемблере намного проще программировать, поскольку он позволяет использовать мнемонические имена команд машинного языка. При этом компилятор Ассемблера последовательно транслирует команды из мнемонического вида в их машинный эквивалент. Таким образом, язык Ассемблера в основном представляет собой прямой аналог машинного языка, но реализованный в том виде, с которым человек может работать более эффективно.
Ход работы
Ассемблер транслирует операторы один за другим, генерируя последовательность из команд процессора и байтов данных.
Формат операторов Ассемблера
Общий формат оператора Ассемблера имеет следующий вид:
[Метка[:]]
Мнемоника [Операнд1 [{,Операнд2}]] [;Комментарий]
Метка - это идентификатор, связанный с адресом первого байта того оператора, в котором она появляется. Мнемоника - это мнемоническое обозначение соответствующей команды процессора или директивы Ассемблера. Комментарий - это любая последовательность символов, начиная с символа ";" до конца строки, которая поясняет соответствующий оператор.
Задания к практической работе
Вариант 1. Вычислите n-й член F(n) последовательности Фибоначчи. В этой последовательности первые два члена равны 1, а каждый последующий равен сумме двух предыдущих.
Вариант 2. Вычислить произведение двух 32-разрядных чисел без знака в предположении, что результат получится также 32-разрядным числом. В случае переполнения установить переменную-флаг, в противном случае сбросить его.
Вариант 3. Задано число. Вычислить максимальный показатель, с которым степень этого числа по длине не превысит слова.
Вариант 4. Выполнить поиск максимального и минимального элементов массива, подсчитать количество положительных, отрицательных и нулевых элементов массива.
Вариант 5. Задано восемь положительных чисел длиной в байт каждое. Распределить значащие биты последнего числа по старшим битам первых семи.
Вариант 6. Задано число. Определить, является ли оно членом последовательности Фибоначчи. Если да, то вернуть его порядковый номер, в противном случае - 0.
Вариант 7. Выполнить скалярное произведение двух векторов. Обеспечить проверку на равенство длин векторов.
Вариант 8. Задана строка, начальная и конечная позиции подстроки. Выделить подстроку.
Контрольные вопросы и задания
1. В чем принципиальное отличие команды от директивы? Поясните назначение директивы ASSUME.
2. Запишите на языке Ассемблера шаблоны для реализации условных операторов if и case языка Pascal.
3. Укажите принципиальную особенность размещения слов в памяти в архитектуре Intel 8086. Какое влияние на процедуру считывания слова из памяти оказывает базовый адрес, по которому размещено слово в памяти?
4.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.