Предложения
Лекция 10 Структура программ ассемблера
Исходный программный модуль – это последовательность предложений. Различают два типа предложений: инструкции процессора и директивы ассемблера. Инструкции управляют работой процессора, а директивы указывают ассемблеру и редактору связей, каким образом следует объединять, инструкции для создания модуля, который и станет работающей программой.
Инструкция процессора на языке ассемблера состоит не более чем из четырех поле и имеет следующий формат:
[[метка:]] мнемоника [[операнды]] [[;комментарии]]
Единственное обязательное поле – поле кода операции (мнемоника), определяющее инструкцию, которую должен выполнить микропроцессор. Поле операндов определяется кодом операции и содержит дополнительную информацию о команде. Каждому коду операции соответствует определенное число операндов. Метка служит для обозначения какого-то определенного места в памяти, т. е. содержит в символическом виде адрес, по которому храниться инструкция. Преобразование символических имен в действительные адреса осуществляется программой ассемблера. Часть строки исходного текста после символа «;» (если он не является элементом знаковой константы или строки знаков) считается комментарием и ассемблером игнорируется. Комментарии вносятся в программу как поясняющий текст и могут содержать любые знаки до ближайшего символа конца строки. Для создания комментариев, занимающих несколько строк, может быть использована директива COMMENT. Пример:
Метка | Код операции | Операнды | ;Комментарий |
MET: | MOVE | AX, BX | ;Пересылка |
Как было указано выше, исходный программный модуль – это последовательность предложений, каждое из которых записывается в отдельной строке:
<Предложение>
<Предложение>
...
<Предложение>
Предложения определяют структуру и функции программы, они могут начинаться с любой позиции и содержать не более 128 символов. При записи предложений действуют следующие правила расстановки пробелов:
- пробел обязателен между рядом стоящими идентификаторами и/или числами (чтобы отделить их друг от друга);
- внутри идентификаторов и чисел пробелы недопустимы;
- в остальных местах пробелы можно ставить или не ставить;
- там, где допустим один пробел, можно ставить любое число пробелов.
Все предложения языка ассемблера делятся на директивы ассемблера и инструкции (команды) процессора.
Директивы ассемблера действуют лишь в период компиляции программы и позволяют устанавливать режимы компиляции, задавать структуру сегментации программы, определять содержимое полей данных, управлять печатью листинга программы, а также обеспечивают условную компиляцию и некоторые другие функции. В результате обработки директив компилятором объектный код не генерируется.
Инструкции процессора представляют собой мнемоническую форму записи машинных команд, непосредственно выполняемых микропроцессором. Все инструкции в соответствии с выполняемыми ими функциями делятся на 5 групп:
1. инструкции пересылки данных;
2. арифметические, логические и операции сдвига;
3. операции со строками;
4. инструкции передачи управления;
5. инструкции управления процессором.