Pergunta

Eu tenho uma função escrita para o macro assembler x64 microsft no visual studio 2005.A função recebe 3 argumentos:

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

a convenção de chamada x64 afirma que os primeiros 4 argumentos residirão nos registros rcx, rdx, r8 e r9.Quando estou usando os argumentos na função, estou referenciando o próprio registro e não os parâmetros:

mov r10, rcx   ; Move firstP to r10

Isso causa o seguinte aviso:

aviso A6004:argumento de procedimento ou local não referenciado

Como posso evitar ou suprimir este aviso?Existe alguma maneira de referenciar os parâmetros dentro da função em vez de usar os registradores?

Foi útil?

Solução

Encontrei a solução:Não precisei declarar o PROC do jeito que fiz.Não há necessidade de declarar os parâmetros que são passados ​​para a função.

theFunction PROC
mov r10, rcx       ;Move firstP to r10
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top