3.8.4 Disassembly modes
The CADI Disassembler interface supports different disassembly modes.
Such modes might, for example, represent different instruction sets that are supported by a
processing unit. A simple example is an ARM processor that supports the A32 instruction set
and the T32 instruction set.
A debugger can use the
GetModeNames() methods to determine which
modes are supported. Typically all CADI Disassembler implementations
support at least one mode which can be considered as a don’t
care mode. The ID for this mode is reserved as 0. The
mode ID enables the instruction at the requested address to be disassembled
with consideration of the instruction set and the current mode for
the processing unit.
Querying the disassembly for a specific memory address with
a nonzero mode ID results in the interpretation of the memory contents
according to the instruction set for that mode. The disassembler
proceeds even if it is an instruction of a different set. This might
lead to an incorrect, but apparently successful, disassembly if
the memory contents accidentally represents a valid instruction
in the ISA for the other mode.