结果到我的帖子我可以在 windows xp 上使用 int21h 来打印东西吗?,我看过一篇关于使用 Windows API 的文章,在这篇文章中提到了使用 _WriteConsole@4 API 将消息打印到控制台。该文章位于http://cs.lmu.edu/~ray/notes/x86assembly/。
到目前为止,这是我的代码:
.386P
.model flat
extern _ExitProcess@4:near
extern _GetStdHandle@4:near
extern _WriteConsoleA@20:near
public _go
.data
msg byte 'if you get this, it worked.', 10
handle dword ?
written dword ?
.code
start:
_go:
push -11
call _GetStdHandle@4
mov handle, eax
push 0
push offset written
push 13
push offset msg
push handle
call _WriteConsoleA@20
push 0
call _ExitProcess@4
end start
我正在使用这种语法来编译代码:ML:
ml (the file is called test.asm) test.asm /c
关联:
link test.obj C:\masm32\lib\kernel32.lib /SUBSYSTEM:CONSOLE /entry:go
我已经让它编译和链接,但是当我运行生成的 .exe 时,它什么也不做,甚至没有返回错误。控制台只是黑色的。为什么是这样?
任何帮助将不胜感激。对于这个论坛的用户,我为每天轰炸 stackoverflow.com 道歉,只是我学习的资源很少。
提前致谢,
程序