我在Visual Studio 2012中编写x86程序集。
我试图从汇编程序中调用printf,但是只要包含EXTERN行就会抛出错误。它可能是非常愚蠢的东西,比如包括C函数库,但是我找不到任何可以告诉我如何正确执行它的在线资源。
这是我的代码:
.model flat
EXTERN _printf
.data
digits byte "0" dup (10), 0
.code
main proc
lea eax, digits
push eax
call _printf
add esp, 4
main endp
END
抛出的错误是:
error A2008: syntax error : in directive
在第3行(与EXTERN的行)
编辑:添加了有关环境的信息(第一行)。
答案 0 :(得分:0)
如评论所示,请使用
extern _printf:proc
或者如果是32位模式,您可能需要使用:
extern _printf:near
externs可能需要放在.code部分。
还要在源代码顶部附近添加这两行,以使链接器查看这些库。
includelib msvcrtd
includelib oldnames