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

Microsoft-spezifisch

Ein __asm Block kann auf ein beliebiges C- oder C++-Symbol im Bereich verweisen, in dem der Block angezeigt wird. (C- und C++-Symbole sind Variablennamen, Funktionsnamen und Beschriftungen, d. h. Namen, die keine symbolischen Konstanten oder enum Member sind. C++-Memberfunktionen können nicht aufgerufen werden.)

Einige Einschränkungen gelten für die Verwendung von C- und C++-Symbolen:

  • Jede Assemblysprache-Anweisung kann nur ein C- oder C++-Symbol enthalten. Mehrere Symbole können in derselben Assemblyanweisung nur mit LENGTH-, TYPE- und SIZE-Ausdrücken angezeigt werden.

  • Funktionen, auf die in einem __asm Block verwiesen wird, müssen weiter oben im Programm deklariert (prototypiert) werden. Andernfalls kann der Compiler nicht zwischen Funktionsnamen und Bezeichnungen im __asm Block unterscheiden.

  • Ein __asm Block kann keine C- oder C++-Symbole mit der gleichen Schreibweise wie reservierte MASM-Wörter verwenden (unabhängig vom Fall). Reservierte MASM-Wörter enthalten Anweisungsnamen wie PUSH und Registernamen wie SI.

  • Struktur- und Unionstags werden in __asm Blöcken nicht erkannt.

Ende Microsoft-spezifisch

Siehe auch

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