Иллюстрированный самоучитель по Assembler



Структуры - часть 2


data segment

pat 1 meddata <1234567, 'м',1955, 1З/06/981, '15/06/98'>

pat2 meddata <1982234, 'м',1932, '18/06/98', '25/06/98 '>

pat3 meddata <4389012, 'ж',1966, '01/12/97', '15/12/97'>

pattemp meddata <>

data ends

Имена patl, pat2 и т.д. будут служить именами переменных, каждая из которых содержит полный комплект данных об одном пациенте. Угловые скобки ограничивают конкретные данные, поступающие в каждую структурную переменную. Для переменной с именем pattemp транслятор выделит в памяти 23 байт, поместив в нее в точности то, что было указано в описании структуры (нули и два символьные шаблона для даты):

0,0,0, ' / / ',' / / '

При обработке данных в программе можно пользоваться мнемоническими обозначениями всей структуры и ее составляющих, причем имена элементов структуры должны отделяться точкой:

mov EAX,patl.index ;ЕАХ=1234567

mov SI,offset patl.datein ;31=смещение элемента patl.datein

mov DL,pat3.sex ;DL='ж'

Особенности использования в приложениях DOS 32-разрядных регистров (ЕАХ в первой строке приведенного фрагмента) будут описаны в гл. 4.

Адрес конкретной структурной переменной можно поместить в базовый или индексный регистр, и пользоваться им в конструкциях с косвенной адресацией:

mov BX,offset pat3 ;ВХ=смещение pat3

mov EAX,[BX].index ;EAX=4389012

mov [BX].sех='м' ;Программная инициализация

Имена элементов структуры являются, в сущности, смещениями к этим элементам от начала структуры. В некоторых случаях их можно использовать в этом качестве и без предваряющей точки:

mov BX, off set pat2 ;ВХ=смещение pat2

add BX,sex ;ВХ=смещение pat2.sex

mov DL, [BX] ;DL='M'

mov SI,birth ;SI=5 (сомнительная команда)

Записи

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




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