私の投稿の結果WindowsXPでint21hを使用して印刷できますか?、Windows APIの使用に関する記事を見ました。この記事では、_WriteConsole @4APIを使用してコンソールにメッセージを出力する方法について説明しました。記事は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に攻撃を仕掛けたことをお詫びします。それは、学ぶためのリソースが非常に少ないということだけです。
前もって感謝します、
プログラム