none
Assembler x64 RRS feed

  • Frage

  • Hi Leute

    Bitte helft mir, wie declariert man lokale variablen in 64-Bit assembler.

    Ich weiss, dass bevor man eine Funktion aufruft platz auf dem Stack reservieren muss, z.B. add rsp,28h u.s.w.

    Muss man das auch machen wenn man lokale Variablen deklariert? Und kann man da auch das Schlüsselwort .local benutzen? Ein Beispiel wäre sehr hilfreich.

    Mittwoch, 17. September 2014 12:36

Antworten

  • Hallo,

    Zunächst solltet Dir die Informationen zum Aufrufkonventionen, Registern uam.: x64-Softwarekonventionen

    Zum "Üben" schau Dir eine Assembler-Ausgabe einfacher C++ Funktionen während einer Debug Sitzung an, da sieht man am besten, wie man mit Registern und Befehlen rumjonglieren muss.

    Ein (englischer) Übersichts-Artikel: How to write x64 assembly functions in Visual C++

    Aber soweit wie möglich solltest Du versuchen mit Intrinsics auszukommen, denn die Produktivität von purem Assembler liegt bei einigen Dutzend (fehlerfreien) Zeilen am Tag - etwas Übung vorausgesetzt (so selbst erlebt mit x86 und IBM/360).

    Gruß Elmar

    • Als Antwort markiert Siffkröte Donnerstag, 18. September 2014 06:39
    Mittwoch, 17. September 2014 13:53