ml64 - advertencia A6004: argumento de procedimiento o local no referenciado
-
05-07-2019 - |
Pregunta
Tengo una función escrita para el ensamblador de macros x64 microsft en visual studio 2005. La función recibe 3 argumentos:
theFunction PROC firstP:QWORD, secondP:QWORD, thirdP:QWORD
el estado de la convención de llamada x64 los primeros 4 argumentos residirán en los registros rcx, rdx, r8 & amp; r9 Cuando estoy usando los argumentos en la función, estoy haciendo referencia al registro ellos mismos y no a los parámetros:
mov r10, rcx ; Move firstP to r10
Esto provoca la siguiente advertencia:
advertencia A6004: argumento de procedimiento o local no referenciado
¿Cómo puedo evitar o suprimir esta advertencia? ¿Hay alguna forma de hacer referencia a los parámetros dentro de la función en lugar de usar los registros?
Solución
Encontré la solución: no necesitaba declarar el PROC de la forma en que lo hice. No es necesario declarar los parámetros que se pasan a la función.
theFunction PROC
mov r10, rcx ;Move firstP to r10