Flat Assembler 1.64. Мануал программера | страница 30
«>extrn
» определяет внешний символ, за ним должно следовать имя символа и опционально оператор размера, указывающий размер данных, помеченных этим символом. Имя символа также может предваряться строкой в кавычках, содержащей имя внешнего символа и оператор «>as
». Пара примеров объявления внешних символов:
>extrn exit
>extrn 'impMessageBoxA@16' as MessageBox: dword
«>public
» объявляет существующий символ как общедоступный, за ним должно следовать имя символа, и далее опционально оператор «>as
» и строка в кавычках, содержащая имя, под которым символ будет действителен как общедоступный. Пара примеров объявления общедоступных символов:
>public main
>public start as '_start'
2.4.4 ELF
Чтобы выбрать формат вывода ELF, используйте директиву «>format ELF
». По умолчанию код для этого формата 32-битный. Чтобы создать формат ELF для архитектуры x86-64, используйте установку «>format ELF
», в этом случае автоматически будет генерироваться код длинного режима.
«>section
» определяет новую секцию, за директивой должна следовать строка в кавычках, определяющая имя новой секции, и ещё может следовать один или оба флага «>executable
» и «>writeable
», опционально также может идти оператор «>align
» со следующим за ним числом, определяющим выравнивание секции (это должна быть степень двойки), если выравнивание не указано, используется значение по умолчанию, которое равно 4 или 8, в зависимости от варианта выбранного формата.
«>extrn
» и «>public
» имеют те же значения и синтаксис у них, как в случае формата COFF (описанного в предыдущем параграфе).
Чтобы создать исполняемый файл, придерживайтесь директивы выбора формата со словом «>executable
». Это позволяет использовать директиву «>entry
» со следующим за ним значением, чтобы создать точку входа в программу. С другой стороны это делает недоступными директивы «>extrn
» и «>public
». За директивой «>section
» в этом случае может следовать только один или более флагов секций и начало секции будет выровнено по странице (4096 байт). Доступные флаги секций такие: «>readable
», «>writable
» и «>executable
».