ml64 - avertissement A6004: argument de procédure ou local non référencé
-
05-07-2019 - |
Question
J'ai une fonction écrite pour l'assembleur de macros microsft x64 dans Visual Studio 2005. La fonction reçoit 3 arguments:
theFunction PROC firstP:QWORD, secondP:QWORD, thirdP:QWORD
La convention d’appel x64 indique que les 4 premiers arguments résideront dans les registres rcx, rdx, r8 & amp; r9. Lorsque j'utilise les arguments de la fonction, je référence le registre eux-mêmes et non les paramètres:
mov r10, rcx ; Move firstP to r10
Cela provoque l'avertissement suivant:
avertissement A6004: argument de procédure ou local non référencé
Comment puis-je éviter ou surprimer cet avertissement? Est-il possible de référencer les paramètres à l'intérieur de la fonction au lieu d'utiliser les registres?
La solution
J'ai trouvé la solution: je n'avais pas besoin de déclarer le PROC comme je l'ai fait. Nul besoin de déclarer les paramètres passés à la fonction.
theFunction PROC
mov r10, rcx ;Move firstP to r10