[Назад] [Далее] Электронные издания на русском языке

3.2.2. Структуры

Директива STRUC позволяет определить структуру данных аналогично структурам в языках высокого уровня. Последовательность директив

имя           struc
              поля
имя           ends

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

метка         имя   <значения>

И наконец, для чтения или записи в элемент структуры используется оператор «.» (точка). Например:

point      struc                        ; Определение структуры
x          dw       0                   ; Три слова со значениями
y          dw       0                   ; по умолчанию 0,0,0
z          dw       0
color      db       3 dup(?)            ; и три байта
point      ends

cur_point  point    <1,1,1,255,255,255> ; Инициализация
           mov      ax,cur_point.x      ; Обращение к слову "x"

Если была определена вложенная структура, доступ к ее элементам осуществляется через еще один оператор «.» (точка).

color      struc                         ; Определить структуру color.
red        db       ?
green      db       ?
blue       db       ?
color      ends

point struc
x          dw       0
y          dw       0
z          dw       0
clr        color    <>
point      ends

cur_point  point    <>
           mov      cur_point.clr.red,al ; Обращение к красной компоненте
                                         ; цвета точки cur_point.