Returns information about the specified instruction.
>>-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.