Создание приложения "Win32" - для Tasm32 (ассемблер).
Подразумевается, точка входа WinMain.
Необходимые файлы для сборки программы:
App.asm - ассемблерный модуль программы.
- Код: Выделить всё
%TITLE "App.asm" ; Необязательная строка. Описывает назначение программы.
IDEAL ; Переводит Turbo Assembler в режим Ideal.
P386 ; Разрешение всех инструкций процессора 80386.
MODEL flat, STDCALL ; Модель памяти.
DATASEG ; Сегмент данных.
szAppName db 'App', 0 ; Имя прикладной программы или заголовок окна.
szMessage db 'Моя первая программа.', 0 ; Cтрока сообщения.
CODESEG ; Тело программы (сегмент кода).
global GetModuleHandleA:near ; Импортируемые функции из Windows
global MessageBoxA:near ; API
global ExitProcess:near ; (Application Program[ming] Interface).
Start:
push 0 ; Стандартная процедура
call GetModuleHandleA ; начала приложения.
push 40h ; Стиль окна сообщ. "ICON_INFORMATION"
push offset szAppName ; Заголовок окна.
push offset szMessage ; Строка сообщения.
push 0 ; Идентификатор родительского окна.
call MessageBoxA ; Вызов стандартного окна сообщений.
push 0 ; Код выхода и
call ExitProcess ; завеpшение программы.
END Start ; Конец программы/точка входа.
App.def - файл необходим для импорта функций, а также для
работы с Turbo Debugger (TD32.exe). Если программу собрать
без def-файла и попробовать запустить отладчик - ничего не
произойдёт!
Deb.bat - файл сборки отладочной версии.
Desc_MakeFile.txt - некоторое описание файла "MakeFile".
(MakeFile не будет работать при наличии в нём кириллических символов т.е. русских букв, поэтому это относительное пояснение, в рабочем файле всё по-английски!)
- Код: Выделить всё
# make -B Вызывается (этот файл) при сборке приложения "App.exe"
# make -B -DDEBUG Вызов (этот файл) при сборке отладочной версии "App.exe"
# Создать проект "Win32". Точка входа функция WinMain ()
LINKOPT=/Tpe /aa /c
# Создание консольного проекта. Точка входа функция main ()
#LINKOPT=/Tpe /ap /c
# Имя приложения при выходе.
NAME = App
MAIN = App
DEF = $(NAME).def
MOD01 = App
#--------------------------------------[ OBJ's - объектные модули.
OBJS = $(MOD01).obj
# Опции транслятора (Tasm).
ASMOPT = /kh100000 /ml /m2
# Опции (Tasm) и компилятора (Tlink) при отладочной и обычной версии.
!if $d(DEBUG)
TASMDEBUG=/zi
LINKDEBUG=/v
!else
TASMDEBUG=
LINKDEBUG=
!endif
# Расположение библиотечных функций.
!if $d(MAKEDIR)
IMPORT=$(MAKEDIR)\..\lib\import32
!else
IMPORT=import32
!endif
# Список зависимостей с информацией о сборке.
All = $(NAME).exe
$(NAME) : $(All)
@echo.
@echo.
@echo. ...[ MakeNode $(NAME).exe ]...
@echo.
@echo.
#--------------------------------------[ Порядок сборки.
$(NAME).exe : $(OBJS)
Tlink32 $(LINKDEBUG) $(LINKOPT) @&&|
$(MAIN).obj
$(NAME).exe
$(IMPORT)
$(DEF)
|
#--------------------------------------[ ASM модули.
.asm.obj:
Tasm32 $(ASMOPT) $(TASMDEBUG) $*
$(MOD01).obj : $(MOD01).asm
M.bat - файл сборки программы.
MakeFile - файл для сборки программы с помощью "Make.exe".
ZMake.bat - файл сборки программы с помощью "Make.exe".
ZMaked.bat - файл сборки программы (отладочной версии)
с помощью "Make.exe".
Еще раз о том - как установить путь переменной окружения системы: