Я пишу задание в сборке MASM32 и почти выполнил его, но у меня есть 2 вопроса, на которые я не могу ответить. Сначала, когда я компилирую, я получаю сообщение:
INVOKE требуется прототип для
Процедура
&
недопустимые операнды инструкции
первое связано с этим фрагментом кода:
.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]
Я не совсем понимаю, что мне следует написать, чтобы это работало, и я даже не знаю, что вызывает вторую ошибку или как ее исправить ... = /
Редактировать
У меня уже есть эти библиотеки и они также:
.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
Я работаю под Windows Vista на всякий случай, если это тоже поможет.
Редактировать 2
Если я пишу Freq: QWORD после .data, я получаю это сообщение об ошибке:
использование регистра, допущенного к ОШИБКЕ
а также куда мне добавить
QueryPerformanceCounter PROTO :DWORD
Который, насколько я знаю, не сделал ошибку, но все же я не уверен, что что-то изменил (я поместил это перед .data и после библиотек).