Компиляция программы через TASM
Создаем простую прогу типа Hello, world на TASM
.386
.model flat, stdcall
;constans
MB_OK equ 0
MB_ICONWARNING equ 30h
MB_ICONQUESTION equ 20h
style equ MB_OK+MB_ICONQUESTION
;prototypes external functions
EXTERN MessageBoxA:NEAR
EXTERN ExitProcess:NEAR
;connect library
includelib c:\tasm32\lib\import32.lib
.data
caption db 'Win32 Assembler programming',0
text db 'Hello, world !',0
.code
start:
push style
push offset caption
push offset text
push 0
call MessageBoxA
push 0
call ExitProcess
ends
end start
Затем создаем exe-файл
tasm32 /m1 messbox.asm
tlink32 -aa messbox.obj
Скомпилировалось без ошибок, но при запуске файла выдается след ошибка:
Файл MESSBOX.EXE связан с отсутствующим компонентом USER32.DLL:MESSAGEBOXA
Ну и в чем тут дело ?
----------------------------------
tlink32 /aa messbox.obj
/ml - различать регистр символов.
extrn MessageBoxA:proc, а не NEAR
И почему так не написать:
call MessageBoxA, 0, offset text, offset caption, 0
call ExitProcess, 0
И если стоит BCB или Delphi, то лучше использовать ilink32:
ilink32 /aa /Tpe messbox.obj