ml64 - предупреждение A6004: аргумент процедуры или локальный не указан
-
05-07-2019 - |
Вопрос
У меня есть функция, написанная для макро-ассемблера x64 в Microsoft Visual Studio 2005. Функция получает 3 аргумента:
theFunction PROC firstP:QWORD, secondP:QWORD, thirdP:QWORD
в соглашении о вызовах x64 указано, что первые 4 аргумента будут находиться в регистрах rcx, rdx, r8 & amp; г9. Когда я использую аргументы в функции, я ссылаюсь на регистр самостоятельно, а не на параметры:
mov r10, rcx ; Move firstP to r10
Это вызывает следующее предупреждение:
предупреждение A6004: аргумент процедуры или локальный не указан
Как я могу избежать или превзойти это предупреждение? Есть ли способ ссылаться на параметры внутри функции вместо использования регистров?
Решение
Нашел решение: мне не нужно было объявлять PROC так, как я это сделал. Нет необходимости объявлять параметры, которые передаются в функцию.
theFunction PROC
mov r10, rcx ;Move firstP to r10
Не связан с StackOverflow