在 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
...
我正在尝试使用 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
...