- •Организация памяти.
- •Прграммная модель мп.
- •Ввод - вывод.
- •Внутренние операции мп.
- •Организация обмена с ву.
- •Прерывания.
- •Система команд и режимы адресации мп.
- •Программирование мп.
- •Команды передачи данных.
- •Команды арифметических операций.
- •Команды логических операций и сдвигов.
- •Команды передачи управления.
- •Команды управления мп.
- •Примеры программ.
- •Директивы.
- •Структура ассемблерной программы.
- •Пример оформления программы.
- •2. Порядок выполнения работы.
- •3.Варианты заданий:
- •Контрольные вопросы.
- •5 Содержание отчета.
- •6 Список литературы.
Программирование мп.
[35],[36],[]
Язык ассемблера (или мнемокод) это машинный язык в символической форме, в которой КОП заменяется мнемоническим обозначением, используется символьное обозначение адресов и команды могут быть снабжены метками. Главными особенностями ассемблера являются:
- трансляция каждой его команды ровно в одну команду машинного языка;
- возможность прямой адресации регистров процессора, и использование абсолютных адресов памяти.
Большие программы обычно пишутся, не на ассемблере, а на языках высокого уровня. Если них есть секции с интенсивным использованием возможностей аппаратных средств, то эти секции более эффективно решаются на ассемблере, позволяющем программисту распоряжаться всеми возможностями аппаратуры. Ассемблерные программы обычно занимают меньший объем памяти и выполняются быстрее.
ОСНОВНЫЕ КОНСТРУКЦИИ ЯЗЫКА АССЕМБЛЕРА.
1. Алфавит - прописные и строчные латинские буквы, цифры и специальные символы.
2. Командные операторы (или инструкции).
[Метка] Команда [Операнды] [;Комментарии]
Метка является символьным именем адреса соответствующей ей ячейки памяти и определяется пользователем. Должна начинаться с буквы или спецсимвола и быть не длиннее 31 символа. В качестве меток нельзя использовать имена регистров.
Мнемоническая команда определяет действие, которое должен выполнить данный оператор. В качестве мнемоник используются английские слова или их сокращения, передающие смысл команды, например ADD - сложить, SUB(stract) - вычесть и т. п.
Операнды являются объектами операции. В зависимости от типа операции их может быть 2, 1 или ни одного. Первый операнд называют получателем или приемником - dst, второй источником - src (Source). В соответствии с режимами адресации операнды можно разделить на: - Постоянные (непосредственные) - это число, строка имя или выражение, имеющие некоторое фиксированное значение. - Адресные - задают физическое расположение операнда в памяти с помощью сегмента и смещения. - Перемещаемые - это любые символьные имена, представляющие некоторые адреса памяти. В отличие от адресных они не привязаны к конкретному физическому адресу. Значение сегмента определяется после загрузки программы в память для выполнения. -Регистровыми - это просто имя регистра. - Базовыми и индексными для реализации соответствующей адресации, структурными и записями.
Комментарии начинаются с точки с запятой и не влияют на выполнение программы.
Например:
MOV AX,BX ; переслать содержимое BX в AX - регистровый операнд
INC M1 ; увеличить содержимое переменной (ячейки памяти) M1. Тип операнда зависит от того, как определена М1. Может быть константа - тогда непосредственный и т.п.
HALT ; останов
Результаты выполнения операций отражаются в регистре слова-состояния процессора (или регистре флажков). С точки зрения программиста наиболее важны следующие разряды:
- бит отрицательного результата SF,
- бит нуля ZF,
- бит переполнения OF,
- бит переноса CF,
- бит разрешения прерываний IF.
3. Директивы. Управляют процессом ассемблирования и не транслируются в машинные коды.
[Имя] Директива [Операнды] [;Комментарии]
4. Макроопределения. Содержат последовательность операторов и являются аналогами подпрограмм. Их вызов осуществляется соответствующими макрокомандами.