Вы здесь: HomeEQU

EQU

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

TIMES     EQU  10

Имя, в данном случае TIMES, может быть  представлено  любым  допустимым  в ассемблере  именем.  Теперь,  в  какой-бы  команде  или    директиве    не использовалось слово TIMES  ассемблер  подставит  значение  10.  Например, ассемблер преобразует директиву

FIELDA    DB   TIMES DUP (?)

в

FIELDA    DB   10 DUP (?)



Имя, связанное с некоторым значением с помощью директивы  EQU,  может использоваться в командах, например:

COUNTR    EQU  05
...
MOV  CX,COUNTR

 

 Ассемблер заменяет имя COUNTR в команде MOV на значение 05,  cоздавая операнд с непосредственным значением, как если бы было закодировано 

MOV  CX,05     ;Ассемблер подставляет 05

Здесь преимущество  директивы  EQU  заключается  в  том,  что  многие команды могут использовать значение, определенное по  имени  COUNTR.  Если это значение  должно  быть  изменено,  то  изменению  подлежит  лишь  одна директива EQU.  Естественно, что использование директивы EQU разумно  лишь там, где подстановка имеет смысл для ассемблера.  В  директиве  EQU  можно использовать символические имена:

TP   EQU  TOTALPAY


 

MPY  EQU  MUL

Первый пример предполагает, что в сегменте данных программы опpеделено имя TOTALPAY.  Для любой команды, содержащей операнд TP, ассемблер заменит его на адрес TOTALPAY.  Второй пример показывает возможность  использования  в программе слова MPY вместо обычного мнемокода MUL.