ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



7. Описание символических имен
               Директивы  описания   символических   имен   позволяют
         создавать  в исходной программе имена, использование которых
         существенно  упрощает  программирование. Символические имена
         являются   константами   времени   ассемблирования  и  могут
         представлять число, текст, инструкцию или адрес.
               Для описания  символических  имен  в  языке  ассемлера
         служат   директивы   EQU,   LABEL  и  директива  абсолютного
         присваивания (=).
               
               Директива  абсолютного  присваивания  имеет  следующий
         формат:
               
         имя=выражение
               
               По    этой   директиве   создается   абсолютное   имя,
         представляющее значение, равное текущему значению указанного
         выражения. Для хранения этого значения не выделяется никакой
         памяти. Вместо этого каждое  вхождение  указанного  имени  в
         исходном файле замещается значением выражения.
               Абсолютное имя может  быть  переопределено.  В  каждой
         директиве  абсолютного  присваивания  в качестве имени может
         быть указано уникальное имя или  имя,  ранее  использованное
         другой директивой абсолютного присваивания.
               Выражение   может   быть   целым   числом,  одно-  или
         двухсимвольной строковой константой, константным  выражением
         или  адресным  выражением.  Его значение не должно превышать
         65535.
               Следует   помнить,   что  значение  абсолютного  имени
         является переменной величиной в процессе  ассемблирования  и
         константой во время выполнения программы.
               
               Примеры:
               
         integer = 167
         string  = 'ab'
         const   = 3*4
         addr    = string

               
               
               Директива EQU имеет следующий формат:
               
         имя EQU выражение

               Директива   EQU  создает  абсолютное  имя,  алиас  или

                                     - 40 -
         
         
         текстовое имя путем присваивания имени указанного выражения.
         Под   абсолютным   здесь   понимается   имя,  представляющее
         16-битовое значение; алиасом назывется ссылка на другое имя;
         текстовое  имя  представляет  собой  строку символов. Каждое
         вхождение имени в исходном файле ассемблер замещает  текстом
         или  значением выражения в зависимости от типа используемого
         выражения.
               Имя  должно  быть   уникальным   и   не   может   быть
         переопределено.  В качестве выражения может задаваться целое
         число,   строковая    константа,    действительное    число,
         кодированное  действительное  число,  мнемоника  инструкции,
         константное выражение  или  адресное  выражение.  Выражение,
         имеющее  значением  целое  число  в  пределах от 0 до 65535,
         порождает  абсолютное  имя,  вхождения  которого   ассемблер
         замещает   этим  значением.  Для  всех  остальных  выражений
         вхождения имени замещаются текстом.
               Директива EQU иногда используется для создания простых
         макроопределений.  Отметим,  что  замещение имен текстом или
         значением осуществляется до ассемблирования содержащего  имя
         предложения.
               
               Примеры:
               
         k   EQU 1024      ; значение
         pi  EQU 3.14      ; текст
         mat EQU 20*30     ; значение
         adr EQU [BP]      ; текст
         cle EQU XOR AX,AX ; текст
         d   EQU BYTE PTR  ; текст
         t   EQU 'File'    ; текст

               
               
               Директива LABEL имеет следующий формат:
               
         имя LABEL тип
               
               Директива  LABEL  порождает новую переменную или метку
         путем присваивания имени указанного типа и текущего значения
         указателя позиции. Имя должно быть  уникальным  и  не  может
         быть переопределено. В качестве типа может быть задано  одно
         из  следующих  ключевых  слов,  имеющих обычный смысл: BYTE,
         WORD, DWORD, QWORD, TBYTE, NEAR, FAR.
               
               Пример:
               
         barray LABEL BYTE
         warray DW    100 DUP(0)
               
               Эдесь имена barray и warray ссылаются на одну и ту  же
         область памяти.


© KOAP Open Portal 2000