Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Сложные структуры данных 2

Читайте также:
  1. I. Исследования в области социальной мобильности и анализ социальной структуры
  2. II. Культурные аспекты изменения социальной структуры
  3. А. Создание и заполнение базы данных
  4. Автоматизация ввода данных
  5. Анализ активов (структуры и стоимости имущества)
  6. Анализ временной структуры
  7. Анализ динамики и структуры баланса

При описании шаблона память не выделяется т.к. это всего лишь информация для транслятора. Местоположение шаблона в программе может быть произвольным. Судя по логике работы однопроходного транслятора он должен быть расположен до того места, где определяется переменная с типом данной структуры. Т.е. при описании в сегменте данных переменной с типом некоторой структуры её шаблон необходимо поместить в начало сегмента данных или перед ним.

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

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

Здесь,

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

Список_значений – это необязательный параметр, заключённый в угловые скобки список начальных значений элементов структуры. Если список указан не полностью, то все поля структуры для данной переменной инициализируются значениями из шаблона, если таковые даны. Допускается инициализация отдельных полей, но в этом случае пропущенные поля должны разделятся запятыми (они будут инициализированы значениями из шаблона структур). Если при определении новой переменной с типом данной структуры мы согласны со всеми значениями полей в его шаблоне, то нужно написать пустые угловые скобки.

Методы работы со структурой

Для того, чтобы сослаться в команде на поле некоторой структуры используется специальный оператор – символ «.».

Синтаксис:

Адресное_выражение.имя_поля_структуры

Здесь,

Адресное_выражение – это идентификатор переменной некоторого структурного типа

Имя_поля_структуры – это имя поля из шаблона структуры. Это тоже адрес(смещение поля от начала структур)

Получается, что оператор «.» вычисляет выражение: (адресное_выражение)+(имя_поля_структуры)

Аналогично другим идентификаторам, определённым в программе, транслятор назначает имени типа структуры и имени переменной с типом структуры атрибут типа. Значением этого атрибута является размеры в байтах, занимаемый полями структур. Извлечь это значение можно с помощью оператора type.

Объединение

Язык ассемблера представляет возможность переопределения области памяти для работы с объектом другого имени и типа. Для этого существует специальный тип данных, который называется объединение. Это тип позволяющий трактовать одну и ту же область памяти как имеющею разные типы и имена. Описание объединения в программе напоминает описание структур. Т.е. сначала описывается шаблон в котором с помощью директив описания данных перечисляются имена и типы полей.

Синтаксис:

Имя_объединения UNION

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

Имя_объединения ENDS

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

В качестве элементов объединения можно использовать и структуры.

Записи

Запись – это структурный тип данных состоящий из фиксированного числа элементов длиной от 1 до нескольких бит.

При описании записи для каждого элемента указывается его длина в битах и, необязательно, некоторое значение. Суммарный размер записи определяется суммой размеров её полей и не может быть более 8, 16, или 32 бит. Если суммарный размер записи меньше указанных значений, то все поля записи прижимаются к младшим разрядам. Использование записей в программе, так же как и структур, организуется в 3 этапа:

1. Задание шаблона записи. Т.е. определение набора битовых полей, их длин и при необходимости их инициализации.

2. Определение экземпляра записи.

3. Организация обращения к элементам записи.

Описание записи:

Имя_записи RECORD< описание_элементов >

Для использования шаблона записи в программе необходимо определить переменную с типом данной записи.

 


Дата добавления: 2015-11-26; просмотров: 49 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.007 сек.)