Gestern erfuhr, dass Inline-Assembly (mit dem __asm Schlüsselwort) nicht unter Microsoft Visual C++ unterstützt, wenn für AMD64 und Itanium Ziele zu kompilieren.Warum unterstützt MSVC keine Inline-Assemblierung für AMD64- und Itanium-Ziele? Ich
Ist das korrekt? Und wenn ja, weiß jemand, warum sie die Inline-Montage für diese Ziele nicht unterstützen würden? Es scheint wie ein ziemlich großes Feature gerade fallenlassen ...
Die C-Compiler erzeugt ASM als Zwischen, nichts ist es „schwierig“ macht es inline ASM auf AMD64 zu ermöglichen. Die Plattformspezifikationen sind der einzige Grund, warum Inline-ASM für x86_64-Ziele in mehreren Compilern, die es für x86 unterstützten, nicht existiert. –
@MarkKCowan: Haben Sie * MSVC's Inline-ASM * gesehen? Es beinhaltet eine Menge an Do-Was-Ich-Mitteln; Sie können frei C/C++ Variablen in dem Assembler-Code Text mischen, so dass der Compiler und (auf einem bestimmten Ebene) zu analysieren, hat die gesamten Code analysieren, nicht wie GCC Weg, wo der Assembler-Code selbst in einem Stil erinnert an printf angegeben Formatzeichenfolgen und explizite Beschreibungen der Eingaben, Ausgaben und gestörten Register machen es überflüssig, dass der Compiler versucht, die Assembly zu analysieren. Ehrlich gesagt, bevorzuge ich den Ansatz von GCC, da es weniger das Erraten des Compilers erfordert. – SamB
@SamB yep, wie Inline-Assembly in Delphi. Ich wünschte nur, GCC nicht verwenden AT & T-Syntax :( –