我是汇编新手,我想学习如何在不依赖 MASM32 sdk 或 Irvine32 设置等的情况下使用它。我要求 gpt 为我生成一个代码,但它一直给我使用 MASM32 SDK 中的
.inc
文件和 .lib
文件。有什么方法可以在不依赖这些设置的情况下显示Hello World
?
创建空控制台项目。将 asm 源文件复制到项目目录(如果尚不存在)。在项目中,右键单击源文件名 属性
从构建中排除 - 更改为“否”
假设文件名为 x.asm。
自定义构建步骤命令行:
ml /c /Fo$(OutDir)\x.obj x.asm
自定义构建步骤输出:
$(OutDir)\x.obj
示例代码:
.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
push offset pfstr
call printf
add esp,4
xor eax,eax
ret
main endp
end