Win32Asm Tutorial |
![]() | назад | 11- Основы ассемблера в windows | вперед | ![]() |
11.0 - Основы ассемблера в windows
Теперь Вы имеете некоторые элементарные знания об ассемблере, здесь вы изучите, как писать ассемблере под windows.
11.1 - API
Основа программирования под windows лежит в Win API (Application Programming Interface). Это набор функций обеспеченных операционной системой. Каждая windows программа использует эти функции. Эти функции находятся в системных dll, таких как kernel, user, gdi, shell, advapi, и т.д. Есть два типа функций: ANSI и Unicode. Это имеет отношение к способу сохранения строки. С ansi, каждый байт представляет символ (ascii-код) и использует 0-байт, для указания конца строки (с нулевым символом в конце). Unicode использует формат widechar, который использует 2 байта на символ. Это позволяет использовать языки, которые нуждаются в большом количестве символов, подобно китайскому. Widechar строки оканчиваются двумя нулевыми байтами. Windows поддерживает оба типа, используя различные имена функций для ansi и unicode. Например:
MessageBoxA (суффикс 'A' означает для ansi)
MessageBoxW (суффикс 'W' означает для widechar (unicode))
Мы будем использовать только ansi.
11.1 - Импорт dll
Чтобы использовать функции из Win API, вы должны импортировать соответствующюю dll. In order to use the functions from the windows API, you need to import the dll's. Это делается библиотеками импорта (.lib). Эти библиотеки необходимы, потому что они позволяют системе (windows) загружать dll динамически. Пакет win32asm (win32asm.cjb.net) снабжен библиотеками для большинства стандартных dll. Вы можете подключить библиотеку директивой includelib.
includelib C:\masm32\lib\kernel32.lib
Этот код подключает библиотеку импорта kernel32.lib.
В примерах, используется вот такая форма:
includelib \masm32\lib\kernel32.lib
Теперь вы можете увидеть, почему ваши исходные файлы должны находится на том же диске, что и masm. Теперь Вы можете компилировать вашу программу на любом другом компьютере без изменения всех путей на правильный диск.