我正试图在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!”?