Flat Assembler 1.64. Мануал программера | страница 29



» оператор «>from» и имя файла в кавычках. Ниже вы можете увидеть примеры секций, содержащих некоторые специальные данные:

>section '.reloc' data discardable fixups

>section '.rsrc' data readable resource from 'my.res'

«>entry» создает точку входа для PE, далее должно следовать значение точки входа.

«>stack» устанавливает размер стека для PE, далее должно следовать значение зарезервированного размера стека, опционально может следовать отделенное запятой значение начала стека. Если стек не определен, ему присваивается размер по умолчанию, равный 4096 байт.

«>heap» выбирает размер дополнительного места для PE, далее должно следовать значение для зарезервированного для него места, опционально ещё может быть значение его начала, отделенное запятой. Если дополнительное место не определено, оно ставится по умолчанию равным 65536 байт, если не указано его начало, то оно устанавливается равным 0.

«>data» начинает определение специальных данных PE, за директивой должен следовать один из идентификаторов данных («>export», «>import», «>resource» или «>fixups») или номер записи данных в заголовке PE. Данные должны быть определены на следующих строках и заканчиваться директивой «>end data». Если выбрано определение настроек адресов, они генерируются автоматически, и никаких данных определять больше не требуется. То же самое относится к ресурсам, если за идентификатором «>resourse» следует оператор «>from» и имя файла в кавычках — в этом случае данные берутся из этого файла ресурсов.

2.4.3 COFF

Чтобы выбрать COFF (Common Object File Format), используйте директиву «>format COFF» или «>format MS COFF», если вы хотите создать классический мелкософтофский файл COFF. По умолчанию код для этого формата 32-битный. Чтобы создать микросфтовский формат COFF для архитектуры x86-64, используйте установку «>format MS64 COFF», в этом случае автоматически будет генерироваться код длинного режима.

«>section» определяет новую секцию, за директивой должна следовать строка в кавычках, определяющая имя новой секции, и ещё может следовать один или более флагов секций. Возможные флаги такие: «>code» и «>data» для обоих вариантов COFF, «>readable», «>writeable», «>executable», «>shareable», «>discardable» и «>notpageable» только для микросовтофского варианта COFF. По умолчанию секция выровнена по двойному слову (четыре байта), но микросовтовский вариант COFF можно выровнять еще как-нибудь по-другому с помощью оператора «>align» и следующим за ним значением выравнивания (любая степень двойки от двух до 8192) среди фагов секций.