Библиотека knigago >> Учебники и пособия >> Статьи и рефераты >> Введение в NASM (низкоуровневое программирование для Windows)


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 2156, книга: Лесные яблоки
автор: Иван Петрович Данилов

Книга «Лесные яблоки» Ивана Данилова — это трогательная и поучительная детская сказка, которая не оставит равнодушным ни юных читателей, ни их родителей. Главный герой книги — мальчик Алеша, который живет в деревне со своей бабушкой. Однажды, в поисках пропавших гусей, он попадает в таинственный лес, где встречает лесных жителей: малиновку, сову, белку и медведя. Каждый из них делится с Алешей своей мудростью и учит его важным жизненным урокам. В книге поднимаются такие темы, как дружба,...

Игорь Орещенков - Введение в NASM (низкоуровневое программирование для Windows)

Введение в NASM (низкоуровневое программирование для Windows)
Книга - Введение в NASM (низкоуровневое программирование для Windows).  Игорь Орещенков  - прочитать полностью в библиотеке КнигаГо
Название:
Введение в NASM (низкоуровневое программирование для Windows)
Игорь Орещенков

Жанр:

Статьи и рефераты, Самиздат, сетевая литература, Литература ХXI века (эпоха Глобализации экономики), Программирование: прочее, Assembler

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Введение в NASM (низкоуровневое программирование для Windows)"

Краткое введение в макроассемблер NASM для Windows.

Читаем онлайн "Введение в NASM (низкоуровневое программирование для Windows)". [Страница - 3]

достаточно подробную инструкцию по установке и использованию. К сожалению, как и большая часть действительно достойной технической документации, она доступна лишь на английском языке. Поэтому, чтобы серьезно заниматься низкоуровневым программированием, потребуется освоить хотя бы базовые элементы английского и найти англо-русский словарь. Если в двух словах, то для установки NASM нужно просто распаковать содержимое дистрибутивного архива в какую-нибудь папку на диске и для удобства прописать путь к этой папке в переменной окружения PATH. Для определенности и по аналогии с традиционной схемой размещения инструментальных программных систем можно рекомендовать построить следующую структуру каталогов (рис. 1), которая встречается в некоторых распространяемых подборках инструментов разработчика NASM для Windows [5]:


Книгаго: Введение в NASM (низкоуровневое программирование для Windows). Иллюстрация № 1

Рис. 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):


Книгаго: Введение в NASM (низкоуровневое программирование для Windows). Иллюстрация № 2
Рис. 2. Этапы создания исполняемого модуля из исходных текстов

Из этой схемы видно, что компилятор нужен только на втором шаге. Как же создать файл с исходным текстом? Использовать «Блокнот»? Можно, конечно, и так, но, чтобы не портить нервы и сразу воспитывать хороший вкус, стоит обратиться к свободно распространяемому продукту ASM Editor for Windows от AV(T) [6]. Что вы --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.