【问题标题】:Invoking print of c in MASM在 MASM 中调用 c 的打印
【发布时间】:2021-03-02 08:13:13
【问题描述】:

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

【问题讨论】:

  • 只是猜测,但请尝试OFFSET _foo。最好在末尾加上换行符以避免任何缓冲问题。
  • 那解决了,谢谢。如何将问题标记为“已解决”?
  • 为您自己的问题添加一个答案,然后几天后您就可以接受自己的答案了。

标签: assembly x86 printf masm masm32


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2022-12-09
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多