Using the disassembler

The Disassembler produces assembler language source statements and a pseudo-listing using object code as input. You can use the Assembler Language source file and listing for purposes such as program understanding, debugging, and recovery of lost source code.

ASMDASM is a two-pass disassembler which produces an assembler language source program from a CSECT within any of the following:
z/OS®
An object module, a program object, or a load module.
CMS
An object deck, or a CMS Module.
z/VSE®
An object module, or a phase.

Control statements permit specification of areas containing instructions or data or uninitialized data areas, provide base registers so that symbolic labels are created during disassembly, and define the DSECTs used during disassembly.

Registers are denoted thus:
  • Access Registers by AR0, AR1,...AR15.
  • Control Registers by CR0, CR1,...CR15.
  • Floating Point Registers by FR0, FR1,...FR15.
  • General Purpose Registers by R0, R1,...R15.
  • Vector Registers by VR0, VR1,...VR31.

The Disassembler provides informational comments for recognized SVCs, and for various branch instructions to aid in creating a documented source program.

A warning about copyright: When you use this utility you must be aware of and respect the intellectual property rights of others. You are not authorized to use this utility to disassemble, copy, or create assembly listings or disassembled Assembler Language source code in violation of any contractual or other legal obligation. You are authorized to use this utility only for object code for which you have verified you have the right to perform disassembly.

The Disassembler normally scans the object code for special strings. If any of these are found, then the Disassembler issues message ASMD010 and the disassembly stops.

The Disassembler searches for the these special strings:
  • (c)
  • (C)
  • © at code point X'B4'
  • "Copyright" in any combination of uppercase and lowercase letters.