Я пытаюсь использовать masm32, чтобы узнать о сборке. Я использую Windows 8 и могу без проблем скомпилировать и запустить пример кода в каталоге masm32.
Я использую Quick Editor 4.0g.
Однако у меня есть следующий код прямо из «Языка ассемблера для процессоров x86» Кипа Ирвина. Он утверждает, что это фрагмент кода, который «не зависит от включаемых файлов», хотя у меня возникает ощущение, что это может быть не совсем правильно.
TITLE Add and Subtract
; This program add and subtracts 32-bit Integers
.386
.model flat,stdcall
.stack 4096
ExitProcess PROTO, dwExitCode:DWORD
DumpRegs PROTO
.code
main PROC
mov eax,10000h
add eax,40000h
sub eax,20000h
call DumpRegs
INVOKE ExitProcess,0
main ENDP
END main
Когда я пытаюсь его собрать (я захожу в проект и выбираю "Консольная сборка и связь"), я получаю следующую ошибку:
AddSubAlt.obj : error LNK2001: unresolved external symbol _ExitProcess@4
AddSubAlt.obj : error LNK2001: unresolved external symbol _DumpRegs@0
AddSubAlt.exe : fatal error LNK1120: 2 unresolved externals
Я пытался понять это в течение нескольких дней. Я нашел ответ от 2002 года, но он ссылается на библиотеки, которых больше не существует. Я надеюсь, что какой-нибудь ангел-гуру сборки поможет мне это исправить.
Пожалуйста и спасибо вам!
.lib
в командную строку компоновщика для библиотек, из которых вы беретеExitProcess
иDumpRegs
. Кстати, зачем вызыватьExitProcess
, когда можно просто обнулитьeax
иretn
? - person Ruslan   schedule 22.01.2015