assembler-na-primerah

Page 135

Глава 9. Компилятор NASM

Файл в формате OMF имеет расширение .obj, и сам формат часто называется также OBJ. Файлы с расширением .obj могут быть скомпонованы в исполня­ емый файл. Несмотря на то, что формат obj был изначально разработан для 16-битного режима, компилятор NASM также поддерживает его 32-битное расширение. Поэтому NASM можно использовать вместе с 32-битными компиляторами от Borland, которые тоже поддерживают этот расширенный 32-битный формат, а не другой объектный формат, поддерживаемый Microsoft. Формат OBJ расширяет синтаксис некоторых директив, в частности, SEGMENT (SECTION). Подробное описание этого формата выходит за рамки данной книги, но вы можете прочитать о нем в руководстве по компилятору NASM. Кроме того, формат OBJ добавляет новую директиву IMPORT, которую мы опишем в главе 11, посвященной программированию в Windows. Директива IMPORT позволяет импортировать указанный файл из DLL, ей нужно пере­ дать два параметра — имя идентификатора и DLL. У каждого OBJ-файла должна быть своя точка входа (как минимум одна). Точка входа определяет позицию, на которую будет передано управление после загрузки программы в память. Точка входа (entry point) обозначена специальным идентификатором (или меткой) ..start:. Чтобы получить файл в формате OBJ, нужно вызвать компилятор с ключом командной строки -1 obj. Формат Win32 — объектный файл для 32-битного режима Для компоновки программы с помощью Microsoft Visual C+ + используется 32-битный формат Win32. Этот формат должен быть совместим с форматом COFF (Common Object File Format), но на самом деле такой совместимости нет. Если вы будете компоновать программу компоновщиком, основанным на формате COFF, компилируйте ассемблерный код в объектный файл формата coff, описанного в следующем пункте. Чтобы получить файл в формате Win32, нужно вызвать компилятор с ключом командной строки -f Win32. Форматы aout и aoutb — старейший формат для UNIX Формат исполняемого файла a.out (Assembler and link editor OUTput files) преимущественно используется в Linux. Расширенная версия этого формата a.outb используется группой BSD-совместимых операционных систем (NetBSD, FreeBSD и OpenBSD). NASM может генерировать файлы обоих форматов, если указать ключ -f aout для Linux или -f aoutb для BSD.

137


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.