Disassembly View

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 DebugWindowsDisassembly 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:

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.

Note: You may see inconsistencies in instructions that work on explicit addresses. This stems from the historic difference between the AVR Assembler and Assembly Language and the GCC Assembler and the assembly used on bigger computer systems. You might, therefore, encounter disassemblies that look like the one below.
    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.