Ich lese das Buch von Andrei Alexandrescu über die D-Programmiersprache. Er ist ein ausgezeichneter Autor und erklärt ziemlich gut Aspekte der D-Sprache. Ich finde jedoch, dass bestimmte Konstrukte schwer zu verstehen sind, wenn ich mir die ASM-Ausgabe oder die Konsequenzen bestimmter Schlüsselwörter (wie In, Out usw. oder anderer Konstrukte) nicht vorstellen kann. Obwohl mein ASM ziemlich schlecht ist und ich ihn nie benutze, hilft es mir sehr, zu verstehen, wie bestimmte Schlüsselwörter für den Computer und die Arbeit funktionieren.Digitaler Mars D Compiler; ASM Ausgabe
Der DMD-Compiler hat viele interessante Features (Code-Coverage, Generierung von Schnittstellen (Header-Dateien), Generierung von Dokumentation, Profilerstellung, ...), aber ich habe keinen Schalter zur Ausgabe von ASM-Code gesehen. Der Compiler erzeugt OBJ-Dateien und liest folgenden Link: http://www.digitalmars.com/ctg/obj2asm.html Ich vermute, dass ich ein Werkzeug brauche, um die Objektdateien manuell zu konvertieren. Ich würde einen Compiler-Schalter bevorzugen, gibt es einen?
Am Ende dieser Seite, ich bin mit einer Seite verbunden, wo ich für die Produkte zahlen kann, die dieses Werkzeug enthalten. Aus einem GNU-Hintergrund kommend, habe ich das sehr missbilligt. Ist das nur für C/C++, oder gilt das auch für den D-Compiler?
Gibt es eine andere Möglichkeit, diese OBJ-Dateien in lesbaren ASM-Code zu konvertieren, oder muss ich auf andere D-Compiler (wie GDC oder LDC) zurückgreifen, um ASM-Ausgabe zu erhalten? Ich bevorzuge es nicht. DMD wird vom Gründer selbst erstellt, ich bin mir sicher, dass er die meisten Funktionen korrekt/weitgehend optimiert implementiert hat.
Also, wie kann ich einen Blick auf den ASM-Code werfen?
Vielen Dank.
Zusätzlich ist DMD der einzige Compiler mit voller Unterstützung für D 2.0 – You