请帮助我链接和编译 2 个简单文件。我尝试将 MyProcedure.asm 的扩展名更改为 inc,装饰和取消装饰名称 MyProcedure(masm 然后开始请求双重装饰),使 MyProcedure 公开,尝试 /coff 但我找不到解决方案。我只想在 Visual Studio 2022 中编译 2 个文件 (masm32)。我正确链接了库。我无法更改系统的 PATH,因此只能使用 Visual Studio 2022 菜单,而不能使用控制台。 当我尝试编译这些文件时,我收到一条错误,指出 _MyProcedure 不存在。我无法编译和运行该程序。我希望能够帮助您成功编译该程序。由于限制,我必须使用 Ms Visual Studio 菜单和命令按钮,我无法在控制台上键入命令(我无法编辑操作系统的 PATH)。
INCLUDE Irvine32.inc
EXTERN MyProcedure:PROC ; Deklaracja zewnętrznej procedury
.data
message BYTE "Hello from Main.asm!", 0
.code
main PROC
mov edx, OFFSET message
call WriteString
call CrLf
call MyProcedure
call ExitProcess
main ENDP
END main
和 MyProcedure.asm
INCLUDE Irvine32.inc
PUBLIC MyProcedure
.data
message BYTE "Hello from MyProcedure.asm!", 0
.code
MyProcedure PROC
mov edx, OFFSET message
call WriteString
call CrLf
ret
MyProcedure ENDP
END
看看是否可以启动这个简单的Win32控制台程序,修改为使用Irvine32.inc:
.686p ;enable instructions
.xmm ;enable instructions
.model flat,c ;use C naming convention (stdcall is default)
; include C libraries
includelib msvcrtd
includelib oldnames
includelib legacy_stdio_definitions.lib ;for scanf, printf, ...
.data ;initialized data
pfstr db "Hello world!",0dh,0ah,0
.data? ;uinitialized data
.stack 4096 ;stack (optional, linker will default)
.code ;code
extrn printf:near
public main
main proc
mov eax,0ffh
imul eax,01010101h
push offset pfstr
call printf
add esp,4
xor eax,eax
ret
main endp
end