This documentation is archived and is not being maintained.

Debugging Basics: Disassembly Window

Visual Studio .NET 2003

The Disassembly window displays the basic instructions created for your source code. Rather than forcing you to read instruction codes in binary or hexadecimal format, the instructions are disassembled into assembly-language format. (The term disassembly comes from the programmer tool called a disassembler. An assembler is a program that takes assembly-language code and assembles it into runnable machine instructions. A disassembler does the reverse, taking the machine code and turning it back into assembly-language form. Disassemblers have various uses, including producing human-readable assembly-language for a program whose original source has been carelessly lost.)

Assembly-language code consists 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.

The Disassembly window is available for both managed and unmanaged code. It is not available for Script or SQL debugging.

If you can't read assembly language and want to take full advantage of the Disassembly window, pick up a good book on assembly-language programming. Assembly-language programming is not for the faint of heart, but it's not as bad as some people assume, either. It is, however, beyond the scope of what we can address in this brief introduction to the Disassembly window.

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. For more information, see Debugging Basics: Registers Window.

You probably will never have the desire or need to view machine-code instructions in their raw, numeric form, rather than assembly language. However, if you want to do so, you can use the Memory window for that purpose or choose Code Bytes from the shortcut menu in the Disassembly window.

See Also

Debugging Basics | Using the Disassembly Window | Disassembly Window | Using the Debugger | Visual Studio Debugger Model | Debugging Basics: Memory Window