Help contents
Assembly language flow charts
Supported languages
Visustin generates flow charts from assembly language code for one of the following assemblers:
- MASM/Intel x86. Microsoft Macro Assembler v6.1.
- NASM/Intel x86. The Netwide Assembler v0.98.38.
- IAR/MSP430. IAR Assembler v2.x for Texas Instruments’ MSP430 Microcontroller Family.
Intel x86 processor instruction sets are supported as follows: 8086, 80186, 80286, 80386, 80486, Pentium, P6, MMX, SSE, SSE2, FPU x87.
Supported instruction types
Visustin recognizes all the instructions that are relevant to flowcharting:
- Unconditional jumps such as JMP.
- Conditional jumps such as JNZ.
- Looping instructions such as LOOP.
- Interrupt calls such as INT.
- Return instructions such as RET.
- Halt instructions such as HLT.
- Exception instructions such as UD2.
- Prefix instructions such as REP and LOCK.
Supported syntax features
- Processor instructions
- Line labels
- Comments
- Procedures
- Structured assembly, such as .if, .else and .while in MASM
- Conditional compilation directives (such as if or %if)
- Repetitive compilation directives (such as repeat or %rep)
- Segment definitions (.CODE, .DATA etc.)
Multi-procedure visualization is supported. Some data segments are not visualized, because they contain no control flow.
Limitations
- Procedure calls are not resolved.
- The flow analysis is static. Run-time conditions such as register contents are not simulated. If a jump target is determined dynamically (say read from a jump table), the jump target will be unknown to Visustin.
- Actions performed by interrupts are unknown to Visustin. If a DOS program terminates by calling
int 21h, Visustin will not notice it.
- Conditional set/move instructions (SETcc, CMOVcc) are not visualized in any special way.
- Macros are not expanded, so a macro call looks like a simple statement and not the action the macro does. NASM macros proc, endproc and return (nagoa.inc) are supported, though.
- NASM sections/segments are not handled in any special way.
Inline asm blocks
You can flowchart inline assembly language within a higher-level file, such as C. Select the relevant Assembler mode, copy & paste the asm block into Visustin and remove the C part.
©Aivosto Oy