Я новичок в Assembly и написал простую программу, которая ничего не делает, кроме вызова процедуры _ExitProgram
, которая затем вызывает ExitProcess
из Windows.
Нет ошибки компиляции, когда я помещаю _ExitProgram
над основной процедурой, но когда я помещаю ее под основной процедурой, мой компилятор не может распознать функцию _ExitProgram
. Я хотел бы знать, как правильно объявить процедуру.
кто-нибудь, пожалуйста.
Спасибо
.386
.MODEL FLAT, STDCALL
OPTION CASEMAP : NONE
;###################################################
;IMPORT FUNCTIONS
ExitProcess PROTO STDCALL, :DWORD
;LOCAL FUNCTONS
_ExitProgram PROTO STDCALL, :DWORD
;###################################################
.code
_start:
push ebp
mov ebp, esp
invoke _ExitProgram, 0
pop ebp
ret
end _start
;##################################################
_ExitProgram PROC STDCALL, uExitCode:DWORD
invoke ExitProcess, uExitCode
ret
_ExitProgram ENDP
;##################################################
END
Я использую Visual Studio 2017 и получаю следующее:
1>Assembling main.asm...
1>main.obj : error LNK2001: unresolved external symbol __ExitProgram@4
1>C:\Users\User\Documents\Visual Studio 2017\Projects\test\Debug\test.exe :
fatal error LNK1120: 1 unresolved externals
1>Done building project "pack.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========