Игорь Орещенков - Введение в NASM (низкоуровневое программирование для Windows)
Название: | Введение в NASM (низкоуровневое программирование для Windows) | |
Автор: | Игорь Орещенков | |
Жанр: | Статьи и рефераты, Самиздат, сетевая литература, Литература ХXI века (эпоха Глобализации экономики), Программирование: прочее, Assembler | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | 2004 | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Введение в NASM (низкоуровневое программирование для Windows)"
Краткое введение в макроассемблер NASM для Windows.
Читаем онлайн "Введение в NASM (низкоуровневое программирование для Windows)". [Страница - 3]
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (7) »
Рис. 1. Рекомендуемая иерархическая структура среды разработки NASM
В соответствии с этой схемой в каталоге BIN хранятся все исполняемые файлы среды разработчика (сам компилятор, компоновщик, библиотекарь, отладчик и др.), и путь именно к этому каталогу следует прописать в переменной PATH, чтобы инструменты были доступны при любом текущем каталоге. Каталог DOC предназначен для хранения документации. В каталог INC удобно записать подключаемые модули с описаниями констант Win32 API. После этого, чтобы скомпилировать программу на ассемблере, достаточно набрать в командной строке следующее:
nasmw -p C:\W32NASM\INC\ win32n.inc -f win32 hello.asm
При выполнении этой команды NASM скомпилирует файл hello.asm, предварительно ознакомившись с описаниями констант и типов данных Win32 API, которые хранятся в файле win32n.inc. Результатом компиляции станет объектный файл hello.obj в формате Microsoft Win32 Object File. Более подробную информацию о параметрах командной строки компилятора NASMW.EXE можно получить из сопроводительной документации или запустив его с ключом -h. NASM позволяет создавать объектные файлы как формата Microsoft Win32 Object File, так и Microsoft OMF Object File. В исходных файлах первого типа нельзя использовать директивы import и export, и связь с функциями динамических библиотек может быть осуществлена только с использованием библиотек импорта. Зато предопределены идентификаторы для описания секций .text, .data, .bss. Исходный текст в этом случае может иметь следующую структуру:
global main
extern MessageBox
extern ExitProcess
segment .data
…
segment .bss
…
segment .text
main:
…
push dword 0
call [ExitProcess]
Для получения исполняемого файла придется выполнить следующие команды:
C:\> nasmw -f win32 main.asm
C:\> alink -oPE main.obj win32.lib -entry main
Кстати, если при компиляции будет получено сообщение об ошибке типа «attempt to define a local label before any non-local labels», то, скорее всего, в исходном тексте записано нечто вроде «.text» вместо «segment .text».
Если выходной файл должен иметь формат Microsoft OMF Object File, то следует использовать ключ -f obj. В файлах этого типа можно использовать директивы import и export, что позволяет создавать с их помощью библиотеки импорта для DLL-библиотек, которые можно компоновать с win32-файлами. Кроме того, для файлов этого типа предопределена метка ..start, которая отмечает точку входа. Структура исходного файла в этом случае может иметь следующий вид:
SECTION DATA USE32 CLASS=DATA
…
SECTION BSS USE32 CLASS=DATA
…
SECTION CODE USE32 CLASS=CODE
…
..start:
…
и компилироваться он должен так:
C:\> nasmw -f obj main.asm
Традиционная последовательность создания программы на языке ассемблера (опуская такие важные технологические этапы, как постановка задачи, проектирование, тестирование и отладка) состоит из трех основных шагов (рис. 2):
Рис. 2. Этапы создания исполняемого модуля из исходных текстов
Из этой схемы видно, что компилятор нужен только на втором шаге. Как же создать файл с исходным текстом? Использовать «Блокнот»? Можно, конечно, и так, но, чтобы не портить нервы и сразу воспитывать хороший вкус, стоит обратиться к свободно распространяемому продукту ASM Editor for Windows от AV(T) [6]. Что вы --">
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (7) »
Книги схожие с «Введение в NASM (низкоуровневое программирование для Windows)» по жанру, серии, автору или названию:
Эдсгер Вайб Дейкстра - Программирование, как вид человеческой деятельности Жанр: Программирование: прочее Год издания: 2021 |
Вячеслав Олегович Рузов - Введение в хитападеш Жанр: Психология Год издания: 2003 |