Идентификаторы, генерируемые директивой MODEL
Когда вы используете директиву MODEL, Турбо Ассемблер создает и инициализирует отдельные переменные, отражающие детали выбранной модели. Эти переменные путем использования операторов условного ассемблирования могут вам помочь написать код, зависящий от модели. О том, как можно использовать эти переменные для изменения процесса ассемблирования, рассказывается в Главе 15.
Идентификатор @Model
Идентификатор @Model содержит числовое значение, представляющее текущую используемую модель. Вы можете задавать его как текстовую макрокоманду с одним из следующих значений:
1 = действует модель tiny (крошечная) 2 = действует модель small (малая) или flat 3 = модель compact (компактная) 4 = medium (средняя) 5 = large (большая) 6 = huge (огромная) 7 = tchuge (Турбо Си) 0 = tpascal (Турбо Паскаль)
Идентификатор @32Bit
Идентификатор @32Bit содержит значение, определяющее, являются ли сегменты в текущей модели 16- или 32-разрядными. Если вы задали в модели MODEL 16-разрядные сегменты, то это значение равно 0, а если 32-разрядные - то 1.
Идентификатор @CodeSize
Идентификатор @CodeSize указывает используемый по умолчанию размер указателя кода в текущей модели памяти. Если он установлен в 0, то модели памяти используют ближние указатели кода типа NEAR (модeли TINY, SMALL, FLAT, COMPACT, TPASCAL), а значение 1 указывает, что модели памяти используют дальние указатели FAR (все другие модели).
Идентификатор @DataSize
Идентификатор @DataSize указывает используемый по умолчанию размер указателя данных в текущей модели памяти. Если он установлен в 0, то модели памяти используют ближние указатели данных типа NEAR (модeли TINY, SMALL, FLAT, COMPACT, TPASCAL), а значение 1 указывает, что модели памяти используют дальние указатели FAR (все другие модели).
Идентификатор @Interface
Идентификатор @Interface дает информацию о языке и операционной системе, которые выбраны в операторе MODEL. Данная текстовая макрокоманда содержит число, биты которого представляют следующие значения:
Модификаторы моделиБиты 0-7 | Значение |
---|
0 | NOLANGUAGE | 1 | C | 2 | SYSCALL | 4 | PASCAL | 5 | FORTRAN | 6 | BASIC | 7 | PROLOG | 8 | CPP |
8 имеет нулевое значение для DOS и равен 1 для OS/2.
Например, значение идентификатора @Interface показывает, что вы выбрали операционную систему OS/2 и язык Си.
1 2 3 4 5 6 7
8 8 8
| |