Предложения

Лекция 10 Структура программ ассемблера

Исходный программный модуль – это последовательность предложений. Различают два типа предложений: инструкции процессора и директивы ассемблера. Инструкции управляют работой процессора, а директивы указывают ассемблеру и редактору связей, каким образом следует объединять, инструкции для создания модуля, который и станет работающей программой.

Инструкция процессора на языке ассемблера состоит не более чем из четырех поле и имеет следующий формат:

 

[[метка:]] мнемоника [[операнды]] [[;комментарии]]

 

Единственное обязательное поле – поле кода операции (мнемоника), определяющее инструкцию, которую должен выполнить микропроцессор. Поле операндов определяется кодом операции и содержит дополнительную информацию о команде. Каждому коду операции соответствует определенное число операндов. Метка служит для обозначения какого-то определенного места в памяти, т. е. содержит в символическом виде адрес, по которому храниться инструкция. Преобразование символических имен в действительные адреса осуществляется программой ассемблера. Часть строки исходного текста после символа «;» (если он не является элементом знаковой константы или строки знаков) считается комментарием и ассемблером игнорируется. Комментарии вносятся в программу как поясняющий текст и могут содержать любые знаки до ближайшего символа конца строки. Для создания комментариев, занимающих несколько строк, может быть использована директива COMMENT. Пример:

 

Метка Код операции Операнды ;Комментарий
MET: MOVE AX, BX ;Пересылка

 

 

Как было указано выше, исходный программный модуль – это последовательность предложений, каждое из которых записывается в отдельной строке:

 

<Предложение>

<Предложение>

...

<Предложение>

 

Предложения определяют структуру и функции программы, они могут начинаться с любой позиции и содержать не более 128 символов. При записи предложений действуют следующие правила расстановки пробелов:

  • пробел обязателен между рядом стоящими идентификаторами и/или числами (чтобы отделить их друг от друга);
  • внутри идентификаторов и чисел пробелы недопустимы;
  • в остальных местах пробелы можно ставить или не ставить;
  • там, где допустим один пробел, можно ставить любое число пробелов.

Все предложения языка ассемблера делятся на директивы ассемблера и инструкции (команды) процессора.

Директивы ассемблера действуют лишь в период компиляции программы и позволяют устанавливать режимы компиляции, задавать структуру сегментации программы, определять содержимое полей данных, управлять печатью листинга программы, а также обеспечивают условную компиляцию и некоторые другие функции. В результате обработки директив компилятором объектный код не генерируется.

Инструкции процессора представляют собой мнемоническую форму записи машинных команд, непосредственно выполняемых микропроцессором. Все инструкции в соответствии с выполняемыми ими функциями делятся на 5 групп:

1. инструкции пересылки данных;

2. арифметические, логические и операции сдвига;

3. операции со строками;

4. инструкции передачи управления;

5. инструкции управления процессором.