Определение данных с типом структуры

Worker ends

Имя_структуры ENDS

Имя_структуры STRUC

Описание шаблона структуры

Организовать обращение к элементам структуры.

Структуры

Структура — это тип данных, состоящий из фиксированного числа элементов разного типа. Структура не является переменной, она только схема переменной.

Для использования структур в программе необходимо выполнить следующее:

1. Задать шаблон структуры, то есть определить новый тип данных, который впоследствии можно использовать для определения переменных данного типа.

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

Описание шаблона структуры имеет следующий синтаксис:

<описание полей>

 

Здесь <описание полей> представляет собой последовательность директив описания данных db, dw, dd, dq и dt. Их операнды определяют размер полей и при необходимости начальные значения.

Местоположение шаблона в программе может быть произвольным, но, следует располагать шаблон структуры до того места, где определяется переменная с типом данной структуры.


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

 

worker struc ;информация о сотруднике

nam db 30 dup (" ") ;фамилия, имя, отчество

position db 30 dup (" ") ;должность

age db 2 dup (" ") ;возраст

standing db 2 dup (" ") ;стаж

salary db 4 dup (" ") ;оклад в гривнах

birthdate db 8 dup (" ") ;дата рождения

 

Для определения переменной с типом данной структуры используется используется следующая синтаксическая конструкция:

[имя переменной] имя_структуры <[список значений]>

Здесь:

имя переменной — идентификатор переменной данного структурного типа.Задание имени переменной необязательно. Если его не указать, будет просто выделена область памяти размером в сумму длин всех элементов структуры.

список значений — список начальных значений элементов структуры, разделенных запятыми. Его задание необязательно. Если список указан не полностью, то все поля структуры для данной переменной инициализируются значениями из шаблона, если таковые заданы. Допускается инициализация отдельных полей, но в этом случае пропущенные поля должны отделяться запятыми. Если при определении новой переменной с типом данной структуры нет необходимости менять значение полей в ее шаблоне, то нужно просто написать угловые скобки. К примеру:

victor worker <>.


Определим несколько переменных с типом описанной выше структуры:

.data segment

sotr1 worker <’Гурко Андрей Вячеславовича’,’художник’,'33','15','1800','26.01.64'>

sotr2 worker <’Михайлова Наталья Геннадьевна’, ,'30','10','1680','27.10.58'>

sotr3 worker<’Cтenaнов Юрий Лонгинович’,’художник’,’38’,'20','1750','01.01.58'>

sotr4 worker<’Юрова Елена Александровна’,'связист', ,'2', ,'09.01.66'>

sotr5 worker<> ;здесь все значения по умолчанию