ml64 - предупреждение A6004: аргумент процедуры или локальный не ссылаются - PullRequest
1 голос
/ 21 октября 2009

У меня есть функция, написанная для макро-ассемблера x64 в Microsoft Visual Studio 2005. Функция получает 3 аргумента:

theFunction PROC firstP:QWORD, secondP:QWORD, thirdP:QWORD

в соглашении о вызовах x64 указано, что первые 4 аргумента будут находиться в регистрах rcx, rdx, r8 и r9. Когда я использую аргументы в функции, я ссылаюсь на регистр, а не на параметры:

mov r10, rcx   ; Move firstP to r10

Это вызывает следующее предупреждение:

предупреждение A6004: аргумент процедуры или локальный параметр не указан

Как я могу избежать или превзойти это предупреждение? Есть ли способ ссылаться на параметры внутри функции вместо использования регистров?

1 Ответ

1 голос
/ 21 октября 2009

Нашел решение: мне не нужно было декларировать PROC, как я это сделал. Нет необходимости объявлять параметры, которые передаются в функцию.

theFunction PROC
mov r10, rcx       ;Move firstP to r10
...