2.3.44. DISASSEMBLE

Displays memory addresses and corresponding assembly code on the Disassembly tab of the Code window.

Syntax

DISASSEMBLE [{/D|/S|/A|/B|/E}] [{address | @stack_level}]

where:

/D

Attempt to auto-detect the disassembly mode.

For ARM architecture processors, select from ARM, Thumb®, Jazelle® bytecodes, or Thumb-2 Execution Environment (Thumb-2EE) using information from the image file where available.

/S

Disassemble using the standard instruction disassembly mode.

For ARM architecture processors, select ARM state (32-bit) instructions.

/A

Disassemble using the alternate instruction disassembly mode.

For ARM architecture processors, select Thumb state (16-bit) instructions.

/B

Disassemble using Jazelle bytecode assembly instructions. This is available only for ARM processors.

/E

Disassemble using Thumb-2EE assembly instructions. This is available only for ARM processors.

address

Specifies the starting address for disassembly. This can be a literal address or a debugger expression.

stack_level

Enables you to specify the starting point without knowing its address. Stack level 0 is the current address in the current procedure, stack level 1 is the code address from which the current procedure was called.

Description

The DISASSEMBLE command displays memory addresses in hexadecimal and assembly code on the Disassembly tab of the Code window, starting at the specified memory location and using the assembler mnemonics and register names associated with the processor type of this connection.

Where multiple assembler mnemonics exist for the same processor type (for example, with the ARM and the GNU assemblers for ARM processors) the debugger can only use one of them. There is no way to select the alternate form.

Note

Different target connections can be connected to different processor types and so have differing register names and assembler mnemonics.

If the specified address falls in the middle of an instruction, the whole instruction is displayed. Memory is displayed starting at the address held in the PC if you do not supply an address. The current execution context and variable scope of the program remains unchanged even if you select an alternate stack level.

If you issue the OPTION command with the LINES=ON option, source code is intermixed with the assembly language code. If you issue the OPTION command with the SYMBOLS=ON option, symbol references are displayed with the assembly language symbols and labels.

The DISASSEMBLE command runs synchronously unless background access to target memory is supported. Use the WAIT command to force it to run synchronously.

Examples

The following examples show how to use DISASSEMBLE:

DISASSEMBLE /S @1

Disassemble, using the standard instruction format (for ARM processors, the ARM state format), the instructions that are executed when the current function returns, displaying the result in the Disassembly tab of the Code window.

DISASSEMBLE 0x80200

Disassemble, using an instruction format selected using symbol table information, the instructions starting at address 0x80200, displaying the result in the Disassembly tab of the Code window.

See also

Copyright © 2002-2011 ARM. All rights reserved.ARM DUI 0175N
Non-ConfidentialID052111