Микропроцессоры. Управляющие сигналы и принцип работы микропроцессоров, страница 12

            3. Поле комментария

            Поле комментария начинается с точки с запятой и полностью игнориру­ется ассемблирующей программой, поэтому в нем можно помещать любой текст.

            В комментарии акцентируется не общая функция команды, которая оп­ределяется мнемоникой, а действия команды в данной программе. Не следует сокращать объем комментария в ущерб его смыслу.

            5.2. Директивы ассемблера

Директивы ассемблера — это указания ассемблирующей программе о выполнении определенных действий в процессе ассемблирования. Они не яв­ляются командами и не переводятся в машинный код. Операторы директив не­обязательны.

            1. Директива ORG. Директива ORG (организовать) имеет следующий формат:

Метка

Код

Операнд

Комментарий

[необязательная метка:]

ORG

<выражение>

            Значением выражения директивы ORG является допустимый 16-битный адрес, определяющий ячейку памяти, куда будет загружаться первый байт сле­дующей команды или байт данных.

            Если в начале программы директива ORG отсутствует, то по умолчанию подразумевается директива ORG с нулевым адресом (таким образом, в примере курсового проекта директива ORG необязательна).

            При необходимости в программе может быть несколько директив ORG. До новой директивы ORG команды и данные размещаются в смежных ячейках памяти.

            2. Директива END. Формат директивы END (конец):

Метка

Код

Операнд

Комментарий

[необязательная метка:]

END

<выражение>

            Эта директива информирует ассемблирующую программу о достижении конца программы. В каждой программе может быть только одна директива END, находящаяся в последней строке.

            3. Директива EGU. Директива EGU (приравнять, присвоить) имеет фор­мат:

Метка

Код

Операнд

Комментарий

<имя>

EQU

<выражение>

            При выполнении директивы EQU ассемблирующая программа присваи­вает значение выражения символическому наименованию, находящемуся в поле метки. Когда наименование встречается в поле операнда, ассемблирующая про­грамма подставляет вместо него присвоенное значение.

            Символическое наименование может появиться в поле метки только од­ной директивы EQU. При программировании следует сгруппировать все дирек­тивы EQU в начале или конце программы.

            4. Директива SET. Директива SET (установка) имеет такой же формат и выполняет такое же действие, как и директива EGU. Однако в отличие от ди­рективы EGU, значения символического наименования допускается изменять с помощью новой директивы SET.

            5. Директивы IF и ENDIF. Директивы условного ассемблирования IF (если) и ENDIF (конец если) применяются следующим образом:

Метка

Код

Операнд

Комментарий

[необязательная метка:]

IF

<выражение>

Команды

[необязательная метка:]

ENDIF

            В процессе ассемблирования вычисляется значение выражения из поля операнда директивы IF. Если оно равно нулю, операторы между директивами IF и ENDIF игнорируются и не включаются в программу в машинных кодах. Когда же значение выражения отличается от нуля, команды программы ассемблиру­ются так, будто директив IF и ENDIF нет.

            Директивы условного ассемблирования удобны, когда программа со­стоит из большого числа сегментов и при ассемблировании нужно исключить некоторые сегменты из программы. Каждый сегмент обрамляется директивами IF и ENDIF. Для исключения сегмента значение операнда соответствующей ди­рективы IF приравнивается нулю, например с помощью директивы EQU.

            6. Директива DB. Директива DB (определить байт) относится к группе директив определения, которые применяются для инициализации данных и ре­зервирования памяти. Формат директивы DB имеет следующий вид:

Метка

Код

Операнд

Комментарий

[необязательная метка:]

DB

<список>

            Операнд директивы DB может быть последовательностью выражений, разделенных запятыми и имеющих 8-битные значения, либо цепочкой симво­лов, заключенных в апострофы. При выполнении директивы DB значения вы­ражений или коды символов запоминаются в смежных ячейках (байтах) памяти, начинающихся после ячейки предыдущей команды. Примеры применения ди­рективы DB:

Метка

Код

Операнд

Комментарий

ARRAY:

DB

3,7,15,31

;Запоминаются четыре значения

DB

‘HELLO’

;Запоминаются пять символов

COMPL:

DB

-63

;Дополнительный код -63

            7. Директива DW. Директива DW (определить слово — 2 байта) также относится к директивам определения и имеет такой же формат, как и директива DB. Однако здесь списком является последовательность выражений, имеющих 16-битные значения. При выполнении директивы DW вычисляется значение первого выражения и его младшие 8 бит запоминаются по текущему адресу, а старшие 8 бит запоминаются по адресу на единицу больше предыдущего. Затем вычисляется значение второго выражения, процедура запоминания повторяется для следующих ячеек памяти и т. д. Примеры с директивой DW: