Frage

Ich habe eine Funktion, die für den X64 -MicroSft -Makro -Assembler in Visual Studio 2005 geschrieben wurde. Die Funktion erhält 3 Argumente:

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

Der X64 -Aufruf der Konvents gibt an. Die ersten 4 Argumente werden sich in Registers RCX, RDX, R8 & R9 befinden. Wenn ich die Argumente in der Funktion verwende, verweise ich auf das Registrieren Sie sich selbst und nicht auf die Parameter:

mov r10, rcx   ; Move firstP to r10

Dies führt zu der folgenden Warnung:

Warnung A6004: Verfahrensargument oder lokaler Nicht verwiesen

Wie kann ich diese Warnung vermeiden oder überraschen? Gibt es eine Möglichkeit, die Parameter innerhalb der Funktion zu verweisen, anstatt die Register zu verwenden?

War es hilfreich?

Lösung

Fand die Lösung: Ich musste den Proc nicht so deklarieren, wie ich es tat. Keine Notwendigkeit, die Parameter zu deklarieren, die an die Funktion übergeben werden.

theFunction PROC
mov r10, rcx       ;Move firstP to r10
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top