Hello world在PE中有效但在PE64中没有

时间:2016-02-08 19:08:03

标签: printf 64-bit fasm

我正试图在Windows上的FASM中编写我自己的x64 Hello world程序 我试图将此版本How to write to the console in fasm?重写为x64程序,如下所示:

format PE64

entry start

include 'win64a.inc'

section '.code' code readable executable
start:
    push hello
    call [printf]
    pop rcx

    push 0
    call [ExitProcess]

section '.rdata' data readable
    hello db 'Hello world!', 10, 0

section '.idata' import data readable writeable
    library kernel,'KERNEL32.DLL', \
        msvcrt,'msvcrt.dll'
    import kernel, ExitProcess,'ExitProcess'
    import msvcrt, printf, 'printf'  

现在问题是这个编译得很好,但是当它执行时它不会向控制台打印任何内容。

为什么这不起作用,printf的{​​{1}}与x64无声地不兼容? 我监督了什么吗?

有人可以告诉我如何重写它以实际打印“Hello world!”?

0 个答案:

没有答案