Из журнала ZX Format #3, Санкт-Петербург, 03.1996 Рубрика "IS-DOS - программистам" No 3 Прокопенко С. В. под ред. Елисеева В. А. "Формат таблицы локальных символов IS-DOS Ассемблера" ________________________________________ В этой статье описывается формат таблицы локальных символов, генерируе- мой IS-DOS Ассемблером в виде временно- го файла *.ltb Таблица локальных символов содер- жит локальные символы-имена, цифровые локальные метки, определенные на первом проходе трансляции программы, и соответ- ствующие им численные значения. Эта таблица-файл стирается по окон- чании трансляции. Структура таблицы локальных символов ассемблера. Вся таблица состоит из непрерывно расположенных записей, по 16 байт каждая. Каждая запись содержит информацию либо об одном локальном символе-имени, либо описывает одну или несколько цифро- вых локальных меток (до 8 шт.) Записи локальных символов-имен связаны друг с другом в бинарное дерево, а к записям цифровых локальных меток можно доб- раться лишь через соответствующий имен- ной символ-метку, начинающую блок цифро- вых локальных меток. Формат одной записи для символов- имен следующий (см. табл. 1): Таблица 1. Формат записи символов-имен. ---------------------------------------- смещ. длина значение ---------------------------------------- 0,1 (2) - ссылка на предидущую запись 2,3 (2) - ссылка на следующую запись 4 (1) - число знаков в имени-символе (N) 5 (N) - знаки символа (символы) 5+N (1) - тег (*) значения символа 6+N (2) - значение символа 8+N (2) - ссылка на блок циф- ровых локальных меток (если он есть) или зна- чение программного счетчика (для символов, определенных через EQU). В остальных слу- чаях не определено ---------------------------------------- -------------- (*) Тег (англ. tag - ярлык, зтикетка) - часть элемента данных (один или нес- колько разрядов слова), определяющая его тип. (прим. ред.) -------------- Ссылки на блок цифровых локальных символов могут быть 2-х типов: 1.#NNFF (FF-младший байт) #FF-признак данного типа ссылки; NN-число цифровых локальных симво- лов в блоке (1 байт); В случае такого типа ссылки блок ц.л.с. начинается прямо со следующей 16 байтовой записи и продолжается до конца. 2.NNNN - смещение относительно начала файла *.ltb до блока ц.л.с. В случае такого типа ссылки блок ц.л.с. начинается по смещению NNNN от начала файла ц.л.с., и в начале блока ц.л.с. идут следующие 2 байта: #FF и да- лее NN-число цифровых локальных симво- лов в блоке. Далее подряд следуют ц.л.с. Один ц.л.с. занимает 2 байта. Пер- вый байт-номер ц.л.с., а второй - его значение (смещение относительно начала блока ц.л.с.) Ц.л.с. записываются в файл в виде 16-байтовых записей. Поэтому, если их число в блоке не кратно 8, то оставшая- ся часть байтов последней записи блока не используется. Новый блок ц.л.с. всег- да начинается в новой 16 байтовой запи- си. ________________ Еще раз напоминаем, что Ваши пожела- ния и замечания по всем материалам, ка- сающимся IS-DOS мы всегда будем рады выслушать по телефону 245-00-91 (с 10.00 до 16.00 по рабочим дням, спросить Прог- раммный отдел), по этому же телефону Вы можете получить оперативную консульта- цию по всем вопросам, касающимся систе- мы IS-DOS и прикладных программ, рабо- тающих в ее среде. Фирма "IskraSoft" ________________________________________