Читать книги » Книги » Компьютеры и Интернет » Базы данных » Tomasz Grysztar - Flat Assembler 1.64. Мануал программера

Tomasz Grysztar - Flat Assembler 1.64. Мануал программера

Читать книгу Tomasz Grysztar - Flat Assembler 1.64. Мануал программера, Tomasz Grysztar . Жанр: Базы данных.
Tomasz Grysztar - Flat Assembler 1.64. Мануал программера
Название: Flat Assembler 1.64. Мануал программера
Автор: Tomasz Grysztar
ISBN: нет данных
Год: неизвестен
Дата добавления: 3 июль 2019
Количество просмотров: 318
(18+) Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту для удаления материала.
Читать онлайн

Flat Assembler 1.64. Мануал программера читать книгу онлайн

Flat Assembler 1.64. Мануал программера - читать онлайн , автор Tomasz Grysztar
1 ... 6 7 8 9 10 ВПЕРЕД
Перейти на страницу:

«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) среди фагов секций.

«extrn» определяет внешний символ, за ним должно следовать имя символа и опционально оператор размера, указывающий размер данных, помеченных этим символом. Имя символа также может предваряться строкой в кавычках, содержащей имя внешнего символа и оператор «as». Пара примеров объявления внешних символов:

extrn exit

extrn 'imp[email protected]' 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».

1 ... 6 7 8 9 10 ВПЕРЕД
Перейти на страницу:
Комментарии (0)