Язык ассемблера микропроцессора 8088. Константы с фиксированной запятой. Определение данных и распределение памяти, страница 2


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

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

Машинные команды составляют большую часть кодов в ассемблерной программе. В поле операции может присутствовать префиксная команда. Например, команда STOSB (Store String Byte — записать строку байтов) может включать префиксную команду REP (Repeat — повторить). В этом случае команды REP STOSB могут быть закодированы в поле операции одного ассемблерного утверждения.

Директивные утверждения представляют типы операций, обеспечивающие помощь ассемблеру в процессе генерации действительных машинных кодов. Операции определения констант и символьных строк, такие, как DB (Define Bytes — определить байты) или DW (Define Words — определить слова), указывают ассемблеру участки памяти, отводимые для размещения определенных типов констант или строковых символов. Такие операции, как PROG (Procedure Definition— определение процедуры), SEGMENT (Segment Definition — определение сегмента), ENDP (End Procedure— конец процедуры) или ENDS (End Segment—конец сегмента), используются для указания ассемблеру начальной и конечной точек процедуры или сегмента программы. Эти команды называются также директивными или псевдокодами, так как они не транслируются в Действительные машинные команды и используются только для передачи информации и указаний ассемблеру. Некоторые операции могут быть использованы для указания ассемблеру выполнить определенные процедуры, такие, как генерация листинга программы со ссылками на адреса и символы в программе.

Еще одной формой директивных утверждений являются макрокоманды, которые расширяются в одно или более ассемблерных утверждений соответсвенно некоторым предварительно определенным условиям.

101


Поле операндов содержит операнды, необходимые для машинной команды, определенной в поле опера-ции. Операнды в поле разделяются запятыми. В тех ;случаях, когда в микро-ЭВМ на базе микропроцессора 8088 заданы два операнда, первый из них всегда ;так называемый приемник, а второй операнд так нарываемый источник.

Первый операнд может содержаться в регистре общего назначения, регистре сегмента или ячейке памяти. Второй операнд может храниться в регистре общего назначения, регистре сегмента, ячейке памяти ,или в ПЗУ. Операнды представляются 8- или 16-разрядными числами. Имя сегментного регистра может быть использовано как сегментный префикс, который определяет, что перемещаемый адрес в поле операндов должен вычисляться относительно сегмента, заданного сегментным префиксом. Допустимыми сегментными префиксами являются CS, DS, ES, SS, которые обозначают командный сегмент, сегмент данных, дополнительный сегмент и стековый сегмент соответственно.

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

(Метка) (Префикс) Операция (Сегментный префикс) (Операнды) (Комментарий).

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

Утверждение не должно начинаться с первой позиции строки. Однако максимальное число символов в строке ограничено 132 колонками. Метки и символические имена могут быть длиной до 31 символа, среди

102