Disassembling object code

Using the DISASM command (see DISASM), you can disassemble object code at a given address. The DISASM command can be invoked either by entering DISASM on any interactive report command line, or by assigning DISASM to a PF key. When invoked, you are shown a popup panel similar to the following:
Figure 1. Sample Storage Disassemble display
  File  View  Services  Help
┌──────────────────────────── Storage Disassemble ────────────────────────────┐
│                                                                             │
│ WARNING Before using this function you must be aware of and respect the     │
│ intellectual property rights of others. You are not authorized to use this  │
│ function 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 function only for object   │
│ code for which you have verified you have the right to perform              │
│ disassembly.                                                                │
│                                                                             │
│ Start Address  . . . . . . . . .                                            │
│ Origin Address (optional)  . . .                                            │
│                                                                             │
│                                                                             │
│  F1=Help     F3=Exit    F12=Cancel                                          │
└─────────────────────────────────────────────────────────────────────────────┘

{Fault Analyzer maximum storage allocated: 1.71 megabytes.}

*** Bottom of data.

 F1=Help      F3=Exit      F5=RptFind   F6=Actions   F7=Up        F8=Down
F10=Left     F11=Right

The DISASM command attempts to disassemble code from a given start address. Optionally, an origin address can be provided in which case the offset of each disassembled instruction is calculated relative to the origin address, rather than the start address. If an origin address is not provided, then it defaults to the same as the start address.

As an example of the DISASM command, the Storage Disassemble display might be specified as follows:
  File  View  Services  Help
┌──────────────────────────── Storage Disassemble ────────────────────────────┐
│                                                                             │
│ WARNING Before using this function you must be aware of and respect the     │
│ intellectual property rights of others. You are not authorized to use this  │
│ function 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 function only for object   │
│ code for which you have verified you have the right to perform              │
│ disassembly.                                                                │
│                                                                             │
│ Start Address  . . . . . . . . . 18D00326                                   │
│ Origin Address (optional)  . . . 18D00300                                   │
│                                                                             │
│                                                                             │
│  F1=Help     F3=Exit    F12=Cancel                                          │
└─────────────────────────────────────────────────────────────────────────────┘

{Fault Analyzer maximum storage allocated: 1.71 megabytes.}

*** Bottom of data.

 F1=Help      F3=Exit      F5=RptFind   F6=Actions   F7=Up        F8=Down
F10=Left     F11=Right
Pressing Enter, the following display is presented:
  File  View  Services  Help
───────────────────────────────────────────────────────────────────────────────
Disassemble command                                            Line 1 Col 1 80
Command ===> ________________________________________________ Scroll ===> CSR 
JOBNAME: JA84Q13A  SYSTEM ABEND: 0C7              SYS01     2019/12/01 13:59:00

Address  Offset    Hex            Instruction
18D00326       +26 05EF           BALR  R14,R15
18D00328       +28 50B0 D0C8      ST    R11,200(,R13)
18D0032C       +2C 41A0 D0D4      LA    R10,212(,R13)
18D00330       +30 D20F 4010 306C MVC   16(16,R4),108(R3)
18D00336       +36 D216 4020 3557 MVC   32(23,R4),1367(R3)
18D0033C       +3C 58E0 303C      L     R14,60(,R3)
18D00340       +40 50E0 4038      ST    R14,56(,R4)
18D00344       +44 5890 4038      L     R9,56(,R4)
18D00348       +48 4090 403E      STH   R9,62(,R4)
18D0034C       +4C 4190 4020      LA    R9,32(,R4)
18D00350       +50 5090 4010      ST    R9,16(,R4)
18D00354       +54 4170 D128      LA    R7,296(,R13)
18D00358       +58 5070 4018      ST    R7,24(,R4)
18D0035C       +5C 4190 403E      LA    R9,62(,R4)
 F1=Help      F3=Exit      F4=Dsect     F5=RptFind   F6=Actions   F7=Up
 F8=Down     F10=Left     F11=Right    F12=retrieve

Once the panel showing the disassembled instructions has been displayed (see example above), then PF7 and PF8 can be used to scroll backwards and forwards.

To exit from the DISASM command, enter EXIT (PF3).