003
19.02.2014, 23:58 Uhr
Hans
Library Walker (Operator)
|
Hi,
Zitat von banshee: |
Ja genau, x-z sind floats.
|
Dann hast Du in C/C++ einen Typenkonflikt vorliegen. Das hier z.B.:
C++: |
int i=0; float f=PI; // 3.1415927 i=i^f;
|
ergibt einen Type Mismatch Error, weil der XOR-Operator (^) nur für ganzzahlige Typen definiert ist.
Zitat: |
Wie kann ich mir den Assembler-Output denn anschauen?
|
Beim gcc mit der Option -S (Gross S), also:
Die erzeugte Datei hat die Endung ".s".
-----
Bei Visual C++ (2008er Version) Projekt/Eigenschaften wählen; in dem erscheinenden Fenster in der Baumauswahl links Konfigurationseigenschaften/C-C++/Ausgabedateien anklicken, Dann im rechten Bereich Assemblyausgabe wählen. Da hast du dann 5 Möglichkeiten:
* keine Auflistung (Standardeinstellung bei mir) * Nur die Assembly auflisten * Assembly, Computercode und Quelle * Assembly mit Computercode * Assembly mit Quellcode
Bei "Nur die Assembly auflisten" kriegst du ein reines Assemblerlisting geliefert. Bei den nächsten 2 Varianten hast Du in dem Listing noch die Hexcodes der CPU-Befehle (Mnemonics) und Parameter oder Zeilennummern der jeweiligen C/C++ Codezeile als Kommentar dabei. Bei der letzten Variante kommt nach einer C/C++ Codezeile als Kommentar der zugehörige Assemblercode. Die Dateien haben entweder die Endung "ASM" oder "COD" und finden sich im Debug-Ordner des Projekts.
-----
Beim Open Watcom schliesslich ist ein separates Programm dabei, dass Assemblerlistings aus Objektdateien erzeugt und eine Reihe von Parametern anbietet, mit denen man die Ausgabe dem Bedarf entsprechend steuern kann. Das Teil heisst wdis.
Dann wäre noch zu sagen, dass die Assemblerlistings beim gcc nach der AT&T Konvention ausgegeben werden, also etwa:
Bei Microsoft erhält man die Intelkonvention:
Und bei wdis vom Open Watcom gibt es einen Parameter womit man auswählen kann, wie man es haben will.
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. Dieser Post wurde am 20.02.2014 um 17:04 Uhr von Hans editiert. |