Вот что удалось найти:
Структуры
Структура данных - это организация данных, которая имеет для программиста определенный смысл. Как показывает опыт, мы определяем структуры данных когда одна и та же совокупность данных используется более чем одной программой или программистами. Благодаря определению, обе стороны имеют четкий образ этих данных. Если программа A передает некотрые данные программе B, то определение структуры данных гарантирует, что каждая из программ ищет данные в одном и том же месте. У нас уже был хороший пример структуры данных. Блок управления файлом FCB является структурой данных. Блок FCB используется программами для обмена информацией о файле с DOS. В блоке FCB содержатся такие важные данные об обрабатываемом файле, как номер текущей записи, длина файла и т. д. Кроме того, в блоке FCB имеется зарезервированное поле, которое содержит информацию, используемую только DOS. В блоке FCB находится вся информация, необходимая для DOS и прикладных программ. Эта структура данных служит для передачи параметров файла между DOS и прикладной программой.
Теперь нужно найти такой способ определения структур данных, чтобы программа могла с удобством ими пользоваться. В
Макроассемблере фирмы IBM имеется оператор STRUC, позволяющий определять структуру данных. С точки зрения программиста структура данных выглядит как еще один сегмент. Определение данных ассемблируется так же, как и обычные операторы данных, и описание структуры, как и описание сегмента, заканчивается оператором ENDS. Однако в действительности структура не генерирует данные. Оператор STRUC определяет структуру данных для ассемблера. В дальнейшем имя этой структуры данных используется в ассемблируемой программе для генерации соответствующей области данных. Если рассматривать оператор STRUC описанным выше образом, то он больше похож на оператор MACRO. Программа определяет структуру данных в одном месте, а ее вызов осуществляет позднее. Фактическая генерация данных происходит при вызове структуры. Фиг. 6.14 поможет понять работу оператора STRUC.
Microsoft (R) Macro Assembler Version 5.00 1/1/80 04:03:36
PAGE, 132
TITLE Фиг. 6.14 Структуры
FCB STRUC
0000 00 DRIVE DB 0 ; Номер устройства
0001 20 20 20 20 20 20 20 20 FILE_NAME DB ' ' ; Имя файла
0009 20 20 20 FILE_EXT DB ' ' ; Тип файла
000C 0000 CURRENT_BLOCK DW 0 ; Номер текущего блока
000E 0080 RECORD_SIZE DW 80H ; Логический размер записи
0010 00000000 FILE_SIZE DD 0 ; Размер файла в байтах
0014 0000 DATE DW 0 ; Дата последнего изменения
0016 000A[ RESERVED DB 10 DUP (?) ??] ; Зарезервировано ДОС
0020 00 SEQ_NUMBER DB 0 ; Номер текущей записи
0021 00000000 RANDOM_NUMBER DD 0 ; Номер записи при прямом доступе
0025 FCB ENDS
0000 STACK SEGMENT STACK
0000 0040[ DW 64 DUP (?) ???]
0080 STACK ENDS
0000 CODE SEGMENT
ASSUME CS:CODE
0000 01 INPUT FCB <1,'FIG6-14','INP'>
(Здесь идет код программы)
0089 CODE ENDS
END
Другие языки программирования и технологии
TASM. В какой части кода объявляются структуры в язяке ASSEMBLER?
Похожие вопросы
- Часть кода из программы на си. Что выведет printf и почему? int num = 1; printf("%d\n", num++ -num);
- assembler tasm
- assembler tasm - в чем ошибка?
- assembler tasm - надо сосчитать сколько елементов было введено
- Как на TASM Assembler вывести число 12345 с помощью цикла ?
- Структура построения кода
- Системное время в TAsm и MAsm
- Assembler или C для микроконтроллеров?
- Код assembler. Ввести массив из 10 чисел и вычислить сумму его элементов, меньших 10. Помогите, пжлст
- Ребят объясните каждую строчку кода Assembler, вроде лёгко, но я туплю...