A memory segment displayed in a dump window can be disassembled and displayed in Assembler format. Data sequences which can be interpreted beyond doubt as not being instructions are displayed in the form of DC constants. Output always starts at a half-word boundary. If parts of the disassembled data area are to be displayed as DC constants, the corresponding lines must be marked in the operation code column. When the key is pressed, disassembly of these instructions is disabled, and the corresponding memory locations are displayed as constants.
The Assembler format is determined by the “ASS”, “CAS” or “XAS” entry in the “Output format” field.
If “ASS” is entered, DAMP automatically determines via the CSECT attribute whether /390 or x86 instructions are to be output. You can, however, also determine the format of the disassembly yourself (e.g. if the CSECT attributes are missing or corrupt). /390 instructions are displayed for the “CAS” entry or x86 instructions for “XAS”.
In the output, DAMP returns either “ASS” (/390 format) or “XAS” (x86 format) in the “Output format” field.
Address levels and operation codes can be marked in the output, but operation codes only in the case of /390 objects.
The USE-REGISTER
statement (see "USE-REGISTER Define register use for disassembled output") can be used to control the symbolic display of the instruction addresses in /390 code but not in X86 code. In this case, the address instructions are no longer displayed as a register and a displacement but as a module-relative address or in the form of a field name in the specified DSECT.
The /390 instruction format used for disassembly is selected automatically by DAMP on the basis of the CPU series used. The MODIFY-OBJECT-ASSUMPTIONS
statement can be used to change this preset value. Instruction formats 1 to 5 are available (see the description of the MODIFY-OBJECT-ASSUMPTIONS
statement on "MODIFY-OBJECT-ASSUMPTIONS Modify default settings for diagnosis object").
Any USE-REGISTER
statements used always apply to all disassembly operations for the same module, even if this is displayed in several dump windows. The DROP-REGISTER
statement (see "DROP-REGISTER Define representation for disassembler") can be used to cancel these assignments.
The statement ADD-LIST-OBJEECTS WINDOW=<w>
can be used to have the disassembled memory segment output to a list.