Руководство по языку B.Pascal 7


Глава 25. Компоновка с программами на языке ассемблера - часть 2


1. Все процедуры и функции должны быть помещены в сегмент с именем CODЕ или CSEG, или в сегмент, имя которого окан- чивается на _TEXT. Все инициализированные частные пере- менные должны помещаться в сегмент с именем Const или в сегмент, имя которого оканчивается на _DATA. Все неини- циализированные частные переменные должны быть помещены в сегмент, имя которого оканчивается на _DAТA. Неинициа- лизированные локальные переменные должны помещаться в сегмент с именем DATA или DSEG, или в сегмент, имя кото- рого оканчивается на _BSS. Все другие сегменты игнориру- ются, поэтому имеется директива GRОUР. В определениях сегмента может задаваться выравнивание на границу слова или байта (WORD или ВYTE). При компоновке они всегда вы- равниваются на границу слова. В определениях сегментов могут указываться директивы PUВLIС и имя класса (они иг- норируются).

2. Borland Pascal игнорирует все данные для сегментов, от- личных от сегмента кода (CODE, CSEG или xxxx_TEXT) и инициализированного сегмента данных (CONST или xxxx_DATA). Поэтому при описании переменных в сегменте неинициализированных данных (DAТA, DSEG или xxxx_BSS) для определения значения всегда используйте вопроситель- ный знак (?). Например:

Count DW ? Buffer DB 128 DUP(?)

3. Байтовые ссылки на идентификаторы типа EXTRN недопусти- мы. Это означает, например, что операторы НIGНТ и LОW нельзя использовать с идентификаторами типа EXTRN.




- Начало -  - Назад -  - Вперед -