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:
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).