MASM32アセンブリで課題を書いていますが、ほぼ完了しましたが、答えられない質問が2つあります。まず、コンパイルすると次のメッセージが表示されます。
INVOKEには手順のプロトタイプが必要です
&
無効な命令オペランド
1つ目は、このコードによるものです。
.data?
Freq DWORD ?
Time1 DWORD ?
Time2 DWORD ?
.code
start:
invoke QueryPerformanceFrequency, addr Freq
invoke QueryPerformanceCounter, addr Time1
今、私はそれを知っています
INVOKEディレクティブの前には、呼び出されるプロシージャのPROTOステートメントを付ける必要があります。
しかし、PROTOステートメントの構文を見つけたとしても:
label PROTO [distance] [langtype] [,[parameter]:tag]
私はそれを機能させるために何を書くべきかを正確に理解しておらず、2番目のエラーの原因や修正方法さえも知りません... = /
編集
私はすでにそれらのライブラリを持っており、これらも次のとおりです。
.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
念のため、WindowsVistaで作業しています。
編集2
.dataの後にFreq:QWORDを書き込むと、次のエラーメッセージが表示されます。
エラーと見なされるレジスタの使用
また、どこに追加する必要があります
QueryPerformanceCounter PROTO :DWORD
私の知る限り、これはエラーにはなりませんでしたが、それでも何も変更されていません(.dataの前とライブラリの後に配置しました)。