在 MASM 中调用 c 的打印

Invoking print of c in MASM

我正在尝试使用 C 打印方法打印字符串,但它没有打印任何内容。我可以打印数字,但是当我尝试使用字符串时它不起作用

.386
.model flat, stdcall
.stack 200h
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
include \masm32\include\masm32rt.inc
dll_dllcrt0 PROTO C
printf PROTO C :VARARG

.DATA
_foo DB "String Contents",0

.CODE

START:


invoke printf, cfm$("%s"),_foo

END START 

就像 Jester 所说的那样,使用 OFFSET _foo 而不是 _foo 工作。这解决了问题。

...
invoke printf, cfm$("%s"),OFFSET _foo
...