Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Турбо Ассемблер / Использование Турбо Ассемблера /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Определение типов данных - Программирование от RIN.RU
Определение типов данных



Определение таблиц


Табличный тип данных представляет набор элементов таблицы. Каждый элемент имеет заданный размер (в байтах) и начальное значение. Элемент таблицы может быть виртуальным или статическим. Виртуальному элементу таблицы присваивается смещение в табличном типе данных. Для него резервируется место в каждом экземпляре таблицы. Статических элемент не имеет смещения. В экземпляре таблицы пространство для него не резервируется.


В целом размер табличного типа данных равен сумме размеров всех виртуальных элементов.


Табличные типы данных представляют таблицы методов, используемые в объектно-ориентированном программировании. С объектом связано обычно некоторое число методов, которые являются указателями на процедуры, работающие с экземплярами объектов. Процедуры методов могут либо вызываться непосредственно (статические методы), либо косвенно, через таблицу указателей процедур методов (виртуальные методы).


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


TABLE имя [элемент_таблицы [,элемент_таблицы.]]


Следующий синтаксис работает только в режиме MASM:


имя TABLE [элемент_таблицы [,элемент_таблицы.]]


Каждое поле "элемент_таблицы" имеет следующий синтаксис:


имя_таблицы


или
[VIRTUAL] имя_элемента [[выражение_счетчика_1]]
[: сложный_тип [:выражение_счетчика_2]] [=выражение]


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


"Имя_элемента" - это имя элемента таблицы. Необязательное ключевое слово VIRTUAL указывает, что элемент является виртуальным, и ему нужно присвоить смещение.


"Сложный_тип" может представлять собой любое допустимое выражение сложного типа. Описание допустимых типов выражений можно найти в этом разделе.


Если вы не задается поле "сложный_тип", Турбо Ассемблер подразумевает, что это WORD (или DWORD, если текущей выбранной моделью является 32-разрядная модель).


Поле "выражение_счетчик_2" задает, сколько элементов данного типа определяется в таблице. Определение элемента таблицы:


foo TABLE VIRTUAL tmp:DWORD:4


определяет элемент таблицы с именем tmp, состоящий из 4 двойных слов.


По умолчанию, если вы его не задаете, "выражение_счетчика_2" имеет значение 1. Поле "выражение_счетчика_1" - это коэффициент размера элемента массива. Для элемента резервируется память, объем, которой определяется произведением "выражение_счетчик_2", длины, заданной полем "сложный_тип", и "выражения_счетчика_2". Если вы не задаете "выражение_счетчика_2", то по умолчанию его значение равно 1. Общее число элементов таблицы определяется произведением "выражение_счетчика_1" и "выражением_счетчика_2".


В режиме Ideal имена элементов таблицы являются локальными для таблицы, а в режиме MASM имеют глобальную область действия.


Поле "имя" задает имя табличного типа данных. Позднее вы можете использовать его в модуле для получения информации о табличном типе данных. Для получения информации можно также использовать имена отдельных элементов. Подробнее об этом рассказывается в этом разделе.


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


Кроме того, Турбо Ассемблер обеспечивает соответствующий синтаксис для определений табличного типа данных, в которых используется несколько строк.


Этот синтаксис аналогичен синтаксису перечислимого типа данных. Приведем пример:


foo TABLE t1:WORD,t2:WORD,t3:WORD,t4:WORD ; исходная версия


foo TABLE { ; версия, использующая
t1:WORD, ; несколько строк


t2:WORD,
t3:WORD,
t4:WORD
}


foo TABLE t1:WORD,t2:WORD, { ; более компактная версия
t3:WORD,t4:WORD }




Переопределение элементов таблицы


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


FOO TABLE VIRTUAL MEM1:WORD=MEM1PROC, VIRTUAL MEM2:WORD=MEM2PROC
FOO2 TABLE FOO, VIRTUAL MEM1:WORD=MEM3PROC ; переопределить наследуемый MEM1


<<<  НазадВперед  >>>
 1  2  3  4  5  6 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Начало работы на Турбо Ассемблере

Использование директив и параметров

Общие принципы программирования

Объектно-ориентированное программирование

Использование выражений и значений идентификаторов

Директивы выбора процессора

Использование моделей памяти программы и сегментации

Задание и использование счетчика адреса

Описание процедур

Управление областью действия идентификаторов

Определение данных

Расширенные инструкции

Использование макрокоманд

Использование условных директив

Интерфейс с компоновщиком

Генерация листинга

Интерфейс Турбо Ассемблера и Borland C++

Интерфейс Турбо Ассемблера с Турбо Паскалем

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь