disassembler: Fix instruction addresses

Don't use the line count to set addresses, since lines may be
ignored (blank).
disassembler: Refactor chart generation
disassembler: Add start and end nodes