Je suis en train d'écrire une affectation dans MASM32 Assembly et j'ai presque terminé, mais j'ai deux questions auxquelles je n'arrive pas à répondre. Tout d'abord, quand je compile je reçois le message:Instruction du prototype d'assemblage
INVOKE nécessite prototype procédure
&
opérandes d'instruction non valide
la première est due à cette pièce de code:
.data?
Freq DWORD ?
Time1 DWORD ?
Time2 DWORD ?
.code
start:
invoke QueryPerformanceFrequency, addr Freq
invoke QueryPerformanceCounter, addr Time1
maintenant, je sais que
La directive INVOKE doit être précédée par une instruction PROTO pour la procédure appelée.
, mais même si je trouve la syntaxe de l'instruction PROTO:
label PROTO [distance] [langtype] [,[parameter]:tag]
Je ne comprends pas exactement ce que je devrais écrire pour le faire fonctionner et je ne sais même pas ce que est à l'origine de la deuxième erreur ou comment le réparer ... =/
Modifier
J'ai déjà ces bibliothèques et ces également:
.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
Je travaille sous Windows Vista juste au cas qui aide aussi bien.
Edit 2
Si j'écris Freq: QWORD après la .data je reçois ce message d'erreur:
utilisation du registre supposé ERREUR
et aussi où dois-je ajouter le
QueryPerformanceCounter PROTO :DWORD
Qui, pour autant que je sache, n'a pas fait d'erreur mais je ne suis pas sûr de rien changer (je l'ai placé avant .data et après les bibliothèques).
Si vous incluez kernel32.inc, vous n'avez pas besoin du prototype pour les API QueryPerformance *. Essayez le dernier exemple que j'ai posté. – newgre