Директива 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 можно использовать символические имена:
1. TP EQU TOTALPAY
2. MPY EQU MUL
Первый пример предполагает, что в сегменте данных программы опpеделено имя TOTALPAY. Для любой команды, содержащей операнд TP, Ассемблер заменит его на адрес TOTALPAY. Второй пример показывает возможность использования в программе слова MPY вместо обычного мнемокода MUL.
Лекция 3.
Регистры