This command changes the look of the disassembly. Here you can change the values of the following checkboxes/input fields:
| Previous topic
| Next topic
This checkbox enables or disables line prefixes display. Line prefix is the address of the current byte:
3000:1000 mov ax, bx ^^^^^^^^^
IDA.CFG parameter: SHOW_LINEPREFIXESNumber of opcode bytes
Opcode bytes are shown below:
3000:1000 55 push bp ^^^^^^^^^
The opcode is the operation code of the current instruction. For the data items, the opcodes are elements of data directives. Sometimes there is not enough place to display all bytes of an item (of a large array, for example). In this case, IDA will display just the few first bytes of the item. For the code items, IDA will try to display all bytes of the instruction, even if it requires adding more lines just for the opcode bytes. If this behavior is not desired, the number of opcode bytes can be specified as a negative value. A negative value -N means to display N opcode bytes on a line but never display empty lines just for the opcode bytes. By default, IDA does not display the opcodes.
IDA.CFG parameter: OPCODE_BYTESUse segment names
This option controls the appearance of the segment names in the addresses. Example (codeseg has base 3000):
Enabled: codeseg:0034 Disabled: 3000:0034
IDA.CFG parameter: USE_SEGMENT_NAMESSegment addresses
Marking this checkbox, you can disable segment addresses in the disassembly. IDA will show only offsets. Example:
Enabled: codeseg:0034 Disabled: 0034
IDA.CFG parameter: SHOW_SEGMENTSFunction offsets
This option controls the appearance of the line prefixes. If it is enabled, the addresses will be displayed as offsets from a function beginning. Example:
Enabled: somefunc+0x44 Disabled: cseg:0x4544Right margin
This option controls the length of disassembly lines for data directives.
IDA.CFG parameter: MAX_DATALINE_LENGTHInstruction indention
You can change indention of disassembled instructions:
mov ax, bx <--------------> indention
IDA.CFG parameter: INDENTIONDisplay bad instruction <BAD> marks
Some assemblers do not understand some instructions even if they must. For example, the Z80 processor has several undocumented instructions and many assemblers fail to recognize them. IDA knows about this fact and tries to produce an output that can be compiled without errors, so it replaces such instructions with data bytes.
The problem is more severe with Intel 80x86 processors: the same instruction can be coded differently. There are 2 operation codes for ADD instruction, etc. The worst thing is that the different operation codes have different lengths. If the assembler used to compile a file and your assembler produce different operation codes, you may obtain completely different output files.
That is why IDA can mark such instructions as <BAD> and replace them with data bytes. Example:
Enabled: db 0Fh,86h,7Eh,0,0,0 ; <BAD> jbe loc_0_205 db 0Fh,82h,78h,0,0,0 ; <BAD> jb loc_0_205 db 0Fh,83h,72h,0,0,0 ; <BAD> jnb loc_0_205 Disabled: jbe loc_0_205 jb loc_0_205 jnb loc_0_205
IDA.CFG parameter: SHOW_BAD_INSTRUCTIONSUse tabulations in output
You can disable the tab chars (0x09) in the output file if you do not like them. By default, IDA produces output files with tab chars.
IDA.CFG parameter: USE_TABULATIONlow suspicious limit high suspicious limit
Click here to get information about these fields.Display stack pointer
If this option is set, IDA will display the value of the stack pointer in the line prefix.
IDA.CFG parameter: SHOW_SPSee also Options submenu.