HLASM Toolkit Feature Interactive Debug Facility User's Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


DISASM

HLASM Toolkit Feature Interactive Debug Facility User's Guide
GC26-8709-07

Returns information about the specified instruction.
Read syntax diagramSkip visual syntax diagram
>>-EXTract--DISasm--instruction-address------------------------><

instruction-address
Any IDF expression. It is resolved to an address and used to find the instruction to be disassembled.

REXX variables set

INSTR
Disassembled instruction text; blank if the address specified by the expression does not contain a valid instruction, otherwise:
Columns
Contents
01-08
Instruction address
10-24
Hexadecimal instruction value in halfwords
26-33
Label
35-39
Operation code
41 on
Operands
NINSTR
Address of the next sequential instruction, as 8-digit hexadecimal (meaningless if INSTR is blank). The address represents the "sequential flow" next instruction.
z/VM
IDF knows that a fullword bitstring follows an SVC 201, that a fullword error return address may follow an SVC 202, and that a halfword code follows an SVC 203, and adjusts the returned NINSTR address accordingly. IDF also recognizes when the target program has stolen the SVC New PSW, and if so returns the entry-point address of its SVC FLIH when an SVC is disassembled.
NINSTRB
Address of the non-sequential (that is, a branching) flow instruction, if any, as 8-digit hexadecimal, or blank if NINSTR represents the only possible next instruction. NINSTRB is set for conditional branch instructions, and represents the next instruction if that conditional branch is taken.
NADDR
Address of the next instruction or data which follows the nominated instruction. This is normally the same as the NINSTR address for sequential flow. But the NINSTR may be different due to IDF's recognition (on CMS) of special flows when an SVC is nominated.
CSECT
The name of the code section (CSECT) within which the instruction occurs (meaningless if INSTR is blank).

If the address is outside the currently qualified module or the FULLQUAL option is ON, then the code section name is module.csect, where module is the name of module containing the address.

Be careful when using addresses obtained from EXTRACT DISASM in other IDF commands. Displacements in disassembled instructions may be shown in either explicit hex notation or implied decimal notation (depending on the HEXDISP option). If you use a displacement that is given in implied decimal notation, but the default input base is hex, the address will not be evaluated as expected.

The recommended procedure for working with expressions obtained from EXTRACT DISASM is to save the default base setting and set it to decimal.

The calculation of the NINSTR and NINSTRB addresses are done using the current target program register values at the time of the EXTRACT DISASM command.

For example a BRANCH instruction might use a base register of R11 for its branching. If the EXTRACT DISASM expression address resolves to the current PSW location, this is no problem whatsoever, since the register values will be correct at that point. However, if the expression represents an address other than the current PSW instruction, the register values might not match what they are at the point of naturally executing that instruction, and so the NINSTR and NINSTRB address might be incorrect.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014