Справочник по языку Ассемблера IBM PC


          

обход обязателен, иначе поле ind



.code ...         jmp     met1    ; обход обязателен, иначе поле ind будет трактоваться ;как очередная команда ind     db      5       ;описание поля данных в сегменте команд met1: ... mov al,cs:ind ;переопределение сегмента позволяет работать с                         ;данными, определенными внутри сегмента кода


Рис. 11. Синтаксис оператора переопределения сегмента
Оператор именования типа . (точка) также заставляет транслятор производить определенные вычисления, если он встречается в выражении. 
Оператор получения сегментной составляющей адреса выражения
seg возвращает физический адрес сегмента для выражения (рис. 12), в качестве которого могут выступать метка, переменная, имя сегмента, имя группы или некоторое символическое имя.

Рис. 12. Синтаксис оператора получения сегментной составляющей
Оператор получения смещения выражения offset
позволяет получить значение смещения выражения (рис. 13) в байтах относительно начала того сегмента, в котором выражение определено.

Рис. 13. Синтаксис оператора получения смещения
Например,

  .data pole    dw      5 ... .code ...         mov     ax,seg  pole         mov     es,ax         mov     dx,offset       pole    ;теперь в паре es:dx полный адрес pole

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

Содержание  Назад  Вперед