Looking for c Keywords? Try Ask4Keywords

C LanguageInline-Montage


Bemerkungen

Bei der Inline-Assembly werden in der Mitte des C-Quellcodes Assembly-Anweisungen hinzugefügt. Kein ISO-C-Standard erfordert die Unterstützung der Inline-Montage. Da dies nicht erforderlich ist, variiert die Syntax für die Inline-Assembly von Compiler zu Compiler. Obwohl es normalerweise unterstützt wird, gibt es sehr wenige Gründe für die Inline-Montage und viele Gründe, warum dies nicht der Fall ist.

Pros

  1. Leistung Durch das Schreiben der spezifischen Assembly-Anweisungen für eine Operation können Sie eine bessere Leistung als der vom Compiler generierte Assembly-Code erzielen. Beachten Sie, dass diese Leistungssteigerungen selten sind. In den meisten Fällen können Sie bessere Leistungssteigerungen erzielen, indem Sie den C-Code so umstellen, dass der Optimierer seine Arbeit erledigen kann.
  2. Hardwareschnittstelle Gerätetreiber oder Prozessor-Startcode benötigen möglicherweise einen Assembler-Code, um auf die richtigen Register zuzugreifen und um sicherzustellen, dass bestimmte Operationen in einer bestimmten Reihenfolge mit einer bestimmten Verzögerung zwischen den Operationen ausgeführt werden.

Cons

  1. Die Compiler-Portabilitätssyntax für die Inline-Assembly ist von einem Compiler zu einem anderen nicht garantiert. Wenn Sie Code mit Inline-Assembly schreiben, der von verschiedenen Compilern unterstützt werden soll, verwenden Sie Präprozessor-Makros ( #ifdef ), um zu prüfen, welcher Compiler verwendet wird. Schreiben Sie dann für jeden unterstützten Compiler einen separaten Inline-Assembly-Abschnitt.
  2. Prozessorportabilität Sie können keine Inline-Assembly für einen x86-Prozessor schreiben und davon ausgehen, dass sie mit einem ARM-Prozessor funktioniert. Inline-Assembly soll für einen bestimmten Prozessor oder eine bestimmte Prozessorfamilie geschrieben werden. Wenn Sie eine Inline-Assembly haben, die auf verschiedenen Prozessoren unterstützt werden soll, überprüfen Sie mithilfe von Präprozessor-Makros, für welchen Prozessor der Code kompiliert wird, und wählen Sie den entsprechenden Assemblycode-Abschnitt aus.
  3. Zukünftige Leistungsänderungen Inline-Assembly kann mit Verzögerungen basierend auf einer bestimmten Prozessortaktrate geschrieben werden. Wenn das Programm für einen Prozessor mit einer schnelleren Uhr kompiliert wird, funktioniert der Assemblercode möglicherweise nicht wie erwartet.

Inline-Montage Verwandte Beispiele