adfun.ru
| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
і і
і * - STACK не подразумевается размещенным в DGROUP илиі
і FARSTACK, заданным в директиве MODEL. і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Используемые по умолчанию
сегменты и типы для модели памяти MEDIUM
Турбо Ассемблер 3.0/tasm/#2-2 = 149 =
Таблица A.3
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Директива Имя Выравнивание Комбинирование Класс Группаі
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і.CODE имя_TEXT WORD PUBLIC 'CODE' і
і.FARDATA FAR_DATA PARA private 'FAR_DATA' і
і.FARDATA? FAR_BSS PARA private 'FAR_BSS' і
і.DATA _DATA WORD PUBLIC 'DATA' DGROUP і
і.CONST CONST WORD PUBLIC 'CONST; DGROUP і
і.DATA? _BSS WORD PUBLIC 'BSS' DGROUP і
іSTACK* STACK PARA STACK 'STACK' DGROUP і
і і
і * - STACK не подразумевается размещенным в DGROUP или і
і FARSTACK, заданным в директиве MODEL. і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Используемые по умолчанию
сегменты и типы для модели памяти COMPACT
Таблица A.4
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Директива Имя Выравнивание Комбинирование Класс Группаі
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і.CODE _TEXT WORD PUBLIC 'CODE' і
і.FARDATA FAR_DATA PARA private 'FAR_DATA' і
і.FARDATA? FAR_BSS PARA private 'FAR_BSS' і
і.DATA _DATA WORD PUBLIC 'DATA' DGROUP і
і.CONST CONST WORD PUBLIC 'CONST; DGROUP і
і.DATA? _BSS WORD PUBLIC 'BSS' DGROUP і
іSTACK* STACK PARA STACK 'STACK' DGROUP і
і і
і * - STACK не подразумевается размещенным в DGROUP илиі
іFARSTACK, заданным в директиве MODEL. і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Используемые по умолчанию
сегменты и типы для модели памяти LARGE или HUGE
Таблица A.5
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Директива Имя Выравнивание Комбинирование Класс Группаі
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і.CODE имя_TEXT WORD PUBLIC 'CODE' і
і.FARDATA FAR_DATA PARA private 'FAR_DATA' і
і.FARDATA? FAR_BSS PARA private 'FAR_BSS' і
і.DATA _DATA WORD PUBLIC 'DATA' DGROUP і
і.CONST CONST WORD PUBLIC 'CONST; DGROUP і
і.DATA? _BSS WORD PUBLIC 'BSS' DGROUP і
іSTACK* STACK PARA STACK 'STACK' DGROUP і
і і
і * - STACK не подразумевается размещенным в DGROUP илиі
іFARSTACK, заданным в директиве MODEL. і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Используемые по умолчанию
Турбо Ассемблер 3.0/tasm/#2-2 = 150 =
сегменты и типы для модели памяти HUGE (TCHUGE) Borland C++
Таблица A.6
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Директива Имя Выравнивание Комбинирование Класс Группаі
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і.CODE имя_TEXT WORD PUBLIC 'CODE' і
і.FARDATA FAR_DATA PARA private 'FAR_DATA' і
і.FARDATA? FAR_BSS PARA private 'FAR_BSS' і
і.DATA имя_DATA PARA private 'DATA' і
іSTACK* STACK PARA STACK 'STACK' і
і і
і * - STACK не подразумевается размещенным в DGROUP илиі
іFARSTACK, заданным в директиве MODEL. і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Программы DOS
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Программы DOS предназначены для работы под управлением опе-
рационной системы DOS и записываются в двух форматах:
- формат .EXE;
- формат .COM.
Формат EXE позволяет использовать наиболее общую в DOS сег-
ментацию программы. Программы могут иметь насколько сегментов и
могут ссылаться на сегмент или группу сегментов по имени. Таким
образом, программы .EXE могут превышать по размеру 64К.
Формат COM представляет собой достаточно простой формат.
Программы в таком формате не могут содержать символьных ссылок на
имена групп и сегментов. Таким образом, программы COM обычно пи-
шутся с использованием модели TINY и ограничены по размеру данных
или кода 64 килобайтами.
Чтобы строить программы DOS, вам потребуется компоновщик
(например, TLINK) и утилита построения программ (например, MAKE).
Подробнее об утилитах рассказывается в Приложении D.
Турбо Ассемблер 3.0/tasm/#2-2 = 151 =
Замечания по программам формата EXE
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
При загрузке программы EXE операционная система устанавлива-
ет регистры следующим образом:
ЪДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Регистр і Значение і
ГДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і DS, ES і Содержит адрес параграфа для префикса прог- і
і і рамного сегмента программы (PSP). PSP со- і
і і держит передаваемые программе в командной і
і і строке аргументы и указатель на строку опе- і
і і рационной среды для программы. і
і і і
і CS:IP і Содержит начальный адрес, заданный в опера- і
і і торе END в одном из модулей программы, или і
і і адрес директивы STARTUPCODE. і
і і і
і SS:SP і Содержит адрес последнего слова, которое і
і і задает в программе сегмент стека. і
АДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
В программах EXE вы можете задавать любую модель памяти.
Следует использовать возможно более простую модель, поскольку это
обеспечивает более быстрое выполнение и упрощает программирова-
ние. Например, если в вашей программе никогда не предполагается
использовать более 64К данных и области стека, то вполне можно
использовать модель TINY.
Директива STURTUPCODE в модуле генерирует инструкции, кото-
рые автоматически инициализируют все необходимые регистры, соот-
ветствующие выбранной модели. Для использования в программе она
сохраняет адрес параграфа PSP в сегменте ES.
Когда вы загружаете программу, операционная система выделяет
программе до ее завершения всю оставшуюся память. Для программ,
которые не используют динамически распределяемую область памяти,
или которые строят в памяти свою собственную динамически распре-
деляемую область, такое поведение вполне подходит. Другие прог-
раммы могут выделять память через DOS. В этом случае через запро-
сом на память из DOS память должна быть освобождена и доступна
операционной системе.
Для выхода из программы используется прерывание INT 21,
функция 4Ch.
Эти вопросы иллюстрируются примером программы EXEPROG.ASM на
дистрибутивном диске. Чтобы сформировать программу EXE, исполь-
зуйте утилиту MAKE. В формирующем файле MAKEFILE следует указать
все модули, с которыми компонуется программа, например:
EXECPROG.EXE: EXECPROG.OBJ
Турбо Ассемблер 3.0/tasm/#2-2 = 152 =
TLINK EXECPROG;
EXECPROG.OBJ: EXECPROG.ASM
TASM EXECPROG
Замечания по программам формата COM
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Программы COM представляют собой ограниченные версии прог-
рамм EXE. Каждую программу формата COM можно представить как
программу EXE, но не каждую программу EXE можно представить как
программу формата COM. Здесь действуют следующие ограничения:
- Программы COM следует писать с использованием модели TINY.
- В программах COM нельзя использовать предопределенный сег-
мент стека.
- Программа COM не может содержать прямых адресных ссылок на
адрес сегмента или группы. Это означает, что программа не
может содержать непосредственных дальних вызовов или ссы-
латься на сегменты по имени. Все процедуры в программе COM
должны описываться как BEAR.
- Выполнение должно начинаться со смещения 100h в сегменте
кода. Чтобы это произошло, укажите в качестве первой инс-
трукции сегмента кода директиву STURTUPCODE.
Турбо Ассемблер загружает программы COM, начиная со смещения
100h в префиксе программного сегмента программы (PSP). Для этого
директива STARTUPCODE для модели TINY автоматически помещает в
программу ORG 100h.
При загрузке программы COM устанавливаются следующие регист-
|
adfun.ru
|
|
|
|