Verwenden von C oder C++ in __asm-Blöcken

Microsoft-spezifisch

Da Inlineassemblyanweisungen mit C- oder C++-Anweisungen gemischt werden können, können sie anhand des Namens auf C- oder C++-Variablen verweisen und viele andere Elemente dieser Sprachen verwenden.

Ein __asm Block kann die folgenden Sprachelemente verwenden:

  • Symbole, einschließlich Beschriftungen und Variablen- und Funktionsnamen

  • Konstanten, einschließlich symbolischer Konstanten und enum Member

  • Makros und Präprozessordirektiven

  • Kommentare (sowohl /* */ als // auch )

  • Typnamen (unabhängig davon, wo ein MASM-Typ legal wäre)

  • typedef Namen, die in der Regel mit Operatoren wie PTR und TYPE oder zum Angeben von Struktur- oder Vereinigungsmitgliedern verwendet werden

Innerhalb eines __asm Blocks können Sie ganzzahlige Konstanten mit C-Schreibweise oder Assembler-Radixnotation angeben (z. B. 0x100 und 100h sind gleichwertig). Auf diese Weise können Sie eine Konstante in C definieren (verwenden #define), und sie dann sowohl in C- als auch in C++- und Assemblyteils des Programms verwenden. Sie können auch Konstanten im Oktal angeben, indem Sie sie einem 0 vorangehen. Beispielsweise gibt 0777 eine oktale Konstante an.

Worüber möchten Sie mehr erfahren?

Ende Microsoft-spezifisch

Siehe auch

Inlineassembler