Assembling and Disassembling Instructions
The debugger engine supports the use of assembly language for displaying and changing code in the target. For an overview of the use of assembly language in the debugger, see Debugging in Assembly Mode.
Note Assembly language is not supported for all architectures. And on some architectures not all instructions are supported.
To assemble a single assembly-language instruction and place the resulting processor instruction in the target's memory, use Assemble.
To disassemble a single instruction by taking a processor instruction from the target and producing a string that represents the assembly instruction, use Disassemble.
The method GetDisassembleEffectiveOffset returns the first effective address of the last instruction to be disassembled. For example, if the last instruction to be disassembled is move ax, [ebp+4]
, the effective address is the value of ebp+4
. This corresponds to the $ea pseudo-register.
To send disassembled instructions to the output callbacks, use the methods OutputDisassembly and OutputDisassemblyLines.
The debugger engine has some options that control the assembly and disassembly. These options are returned by GetAssemblyOptions. They can be set using SetAssemblyOptions and some options can be turned on with AddAssemblyOptions or turned off with RemoveAssemblyOptions.