Ein in einem Dumpfenster ausgegebener Speicherbereich kann disassembliert und im Assembler-Layout ausgegeben werden. Dabei werden Datensequenzen, die eindeutig nicht als Befehle interpretiert werden können, als DC-Konstanten gezeigt. Sollen Teile des disassemblierten Datenbereichs als DC-Konstanten angezeigt werden, dann sind die entsprechenden Zeilen in der Spalte des Opcodes zu markieren. Nach
wird dann die Disassemblierung dieser Befehle rückgängig gemacht und die entsprechenden Stellen werden als Konstanten ausgegeben.Das Assembler-Format wird durch die Angabe „ASS“, „CAS“ oder „XAS“ im Eingabefeld „Ausgabeformat“ bestimmt.
Bei der Eingabe „ASS“ bestimmt DAMP über die CSECT-Attribute automatisch, ob /390- oder x86-Befehle ausgegeben werden sollen. Sie können (z.B. bei fehlenden oder fehlerhaften CSECT-Attributen) das Format der Disassemblierung aber auch selbst bestimmen; bei der Eingabe „CAS“ werden /390-Befehle und bei „XAS“ werden x86-Befehle ausgegeben.
Bei der Ausgabe liefert DAMP im Feld „Ausgabeformat“ entweder „ASS“ (/390-Format) oder „XAS“ (x86-Format) zurück.
Im Ausgabeschirm sind Adresspegel und Opcodes markierbar, Opcodes aber nur bei /390-Objekten.
Bild 35: Beispiel für disassemblierte Ausgabe von x86-Code
Mit der Anweisung USE-REGISTER
(siehe "USE-REGISTER Registerverwendung für Disassemblierung festlegen") kann bei /390-Code, nicht jedoch bei x86-Code, eine symbolische Anzeige der Befehlsadressen gesteuert werden. Dadurch werden die Adressbefehle nicht mit Register und Distanz, sondern als modulrelative Adressen oder in Form eines Feldnamens aus der angegebenen DSECT dargestellt.
Das für die Disassemblierung verwendete /390-Befehlsformat wird von DAMP automatisch auf Grund der zu Grunde liegenden CPU-Serie gewählt. Diese Voreinstellung lässt sich mit der Anweisung MODIFY-OBJECT-ASSUMPTIONS
ändern. Verfügbar sind die Befehlsformate 1 bis 5 (siehe Beschreibung MODIFY-OBJECT-ASSUMPTIONS
auf "MODIFY-OBJECT-ASSUMPTIONS Ändern der Standardeinstellungen für das Diagnoseobjekt").
Die verwendeten USE-REGISTER
-Anweisungen gelten für alle Disassemblierungen des gleichen Moduls, auch in mehreren Dumpfenstern. Durch die Anweisung DROP-REGISTER
(siehe "DROP-REGISTER Registerverwendung für Disassembler festlegen") können diese Zuweisungen aufgehoben werden.
Bild 36: Ausgabe im Assembler-Format; folgende Anweisungen wurden gegeben:
USE-REG MOD-NA=ASTRACE,REG=10,FOR=*MOD-BASE(DISPL=X'458')
USE-REG MOD-NA=ASTRACE,REG=11,FOR=*CONTR-BLOCK(NAME=WORDLIST)
Mit der Anweisung ADD-LIST-OBJECTS WINDOW=<w>
können Sie den disassemblierten Speicherbereich für die Ausgabe auf Liste anmelden.