The Disassembly window is only available when debugging. When any supported high-level language is used, the source window is automatically displayed and the disassembly window is OFF. Enable it by choosing Debug → Windows → Disassembly or Ctrl Alt D during a debugging session.
The disassembly window shows your program code disassembled. Program execution and AVR instructions can be followed in this view. By right clicking inside the Disassembly window, you will be able to set breakpoints, run to the position of the cursor, or go to the source code. You cannot modify the source code from the Disassembly window.
In addition to assembly instructions, the Disassembly window can show the following optional information:
Memory address where each instruction is located. For native applications, this is the actual memory address.
Source code from which the assembly code derives
Code bytes byte representations of the actual machine
Symbol names for the memory addresses
Line numbers corresponding to the source code
Assembly-language instructions consist of mnemonics, which are abbreviations for instruction names, and symbols that represent variables, registers, and constants. Each machine-language instruction is represented by one assembly-language mnemonic, usually followed by one or more variables, registers, or constants.
Because assembly code relies heavily on processor registers or, in the case of managed code, common language runtime registers, you will often find it useful to use the Disassembly window in conjunction with the Registers window, which allows you to examine register contents.
13: asm volatile ("JMP 0x0001778A"); 0000007D 0c.94.c5.bb JMP 0x0000BBC5 Jump >
Here, the assembly instruction JMP 0x0001778A
is being
assembled by the GCC Assembler and disassembled using the built-in disassembler in
Atmel Studio, which resolves the jump to 0x0000BBC5
, which is
exactly half of the address in the initial assembly.
It should be noted that the addresses are always of the same dimension as the line addresses shown in the disassembly, so the code is functionally similar.