어셈블리에 대해 알아보기 위해 masm32를 사용하려고합니다. 나는 Windows 8을 실행 중이며 문제없이 masm32 디렉토리에서 샘플 코드를 컴파일하고 실행할 수 있습니다.MASM32 컴파일 오류
빠른 편집기 4.0g을 사용하고 있습니다.
그러나 Kip Irvine의 "x86 프로세서 용 어셈블리 언어"의 코드는 다음과 같습니다. 그는 이것이 "include file에 의존하지 않는다"는 약간의 코드라고 말하지만, 이것이 완전히 정확하지 않을 수도 있다는 생각이 들었다. 나는 일이를 알아 내기 위해 노력 해왔다
AddSubAlt.obj : error LNK2001: unresolved external symbol [email protected]
AddSubAlt.obj : error LNK2001: unresolved external symbol [email protected]
AddSubAlt.exe : fatal error LNK1120: 2 unresolved externals
: 나는 그것을 구축 할 때
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
나는 다음과 같은 오류가 발생합니다 (I 프로젝트와 "콘솔 조립 및 링크"를 선택로 이동합니다) . 2002 년부터 해답을 찾았지만 더 이상 존재하지 않는 라이브러리를 참조합니다. 거기에있는 일부 의회의 전문가 천사가 문제를 해결하는 데 도움이되기를 바랍니다.
감사합니다. http://www.kipirvine.com/asm/examples/Irvine_7th_Edition.msi을 :
'ExitProcess' 및'DumpRegs'를 가져 오는 라이브러리의 링커 명령 행에 해당 .lib' 파일을 추가해야합니다. 왜 그냥 'eax'와'retn'을 0으로 할 수있을 때 왜'ExitProcess'를 호출할까요? – Ruslan
또는 어셈블리 코드에서 includelib directirves를 추가 할 수 있습니다. INCLUDELIB MSVCRTD | | INCLUDELIB OLDNAMES | . – rcgldr
@Ruslan 왜 Irvine 씨가 이런 식으로 코드를 작성했는지 묻는다면, 나는 대답 할 수 없었습니다. 나는 또한 당신이 말한 것을하는 방법을 정말로 이해하지 못합니다. –