Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
assmblr.doc
Скачиваний:
138
Добавлен:
15.03.2015
Размер:
486.4 Кб
Скачать

2.2. Вызов WinApi функций

API (Application Program Interface, Программный интерфейс приложения) – это набор функций программирования, описывающих доступ к данным и методам классов, которыми пользуется программист при написании приложений (программ).

Взаимодействие с внешними устройствами и ресурсами операционной системы будет происходить посредством таких функций.

Упрощенно можно сказать, что API-функции – это готовые к использованию функции, которые уже написаны другими программистами, и для выполнения этих функций достаточно только вызвать их и передать им параметры, с которыми они будут работать. Параметры функции помещаются в специально организованную область памяти, называемую стеком. В стеке используется принцип «последним пришел – первым вышел».

Для организации вызова WinAPI функции в общем случае требуется выполнить следующие шаги:

1. Во включаемом файле определить вызываемую функцию.

2. Непосредственно перед местом вызова функции поместить все параметры функции в программный стек в порядке, обратном их размещению в списке формальных параметров в описании интерфейса функции. Так, если интерфейс функции описан следующим образом:

WriteConsole (hConsoleOutput, lpvBuffer, cchToWrite, lpcchWritten, lpvReserved);

то сначала мы помещаем в стек параметр lpvReserved, затем lpcchWritten и так далее.

3. Сразу после помещения параметров в стек следует вызвать функцию.

2.3. Создание программ на ассемблере

1. Получение ассемблерного листинга

В Windows программы пишут в обычном текстовом виде, а не так, как в предыдущей лабораторной работе (каждую строку сразу транслировали в машинную команду). Такой текстовый вид называется исходным файлом (англ. – source). Текст исходника можно писать в любом текстовом редакторе, в т.ч. в MS Word (при установленном фильтре простого текста). Файлы исходников имеют расширение .TXT или .ASM.

2. Ассемблирование (трансляция)– получение объектного модуля

Как и для любого языка программирования, для ассемблера необходима система программирования, включающая язык ассемблера и транслятор с этого языка. Такие системы программирования тоже называются ассемблерами. В настоящее время наиболее часто используется MASM (Microsoft Assembler) и MASM32. Также существуют ассемблеры MASM, TASM, NASM, FASM и некоторые другие.

Программа-ассемблер создает объектный файл с расширением OBJ. Данный файл является переходным между ассемблерным файлом (.ASM) и программой (.EXE/.COM).

Дело в том, что текст больших программ хранится во многих файлах. Чтобы получить готовую программу, тексты на ассемблере сначала преобразуются в объектные файлы, а затем их обрабатывает редактор связей или компоновщик, который как бы собирает их вместе.

3. Компоновка (линковка) – создание исполняемого модуля

Затем необходимо воспользоваться линковщиком (компоновщиком), который входит в комплект программы-ассемблера.

Линковщик также проверяет, нет ли каких-либо ошибок в объектном файле, но не грамматических, а логических. Например, отсутствие необходимой объектной библиотеки, указанной в самом файле либо в командной строке (программа-ассемблер этого не делает).

Если ошибок не обнаружено, компоновщик создает машинный код (программу типа COM или EXE), которую можно запускать на выполнение.

Типы файлов .COM и .EXE имеют отличия в структуре ассемблерной программы. Первый тип (COM) не может превышать 64Кб и используется только в MS-DOS. .EXE может быть создан и для DOS, и для Windows.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]