Browse Source

Track branches with 24 bit absolute addresses too.

Also, fix bug in generating duplicate labels after reading in labels file
master
Gavan Fantom 14 years ago
parent
commit
d3ce23424e
  1. 7
      disassem.pl

7
disassem.pl

@ -63,7 +63,7 @@ if (open LABELS, "<input.labels") {
$addr = hex $addr; $addr = hex $addr;
$labels{$addr} = $name; $labels{$addr} = $name;
if ($name =~ /^L(\d+)$/) { if ($name =~ /^L(\d+)$/) {
$labelnum = $1 + 1 if ($labelnum >= $1); $labelnum = $1 + 1 if ($1 >= $labelnum);
} }
} }
} }
@ -1550,7 +1550,12 @@ sub read_operand_addr24
my $addr = $byte1; my $addr = $byte1;
$addr += $byte2 << 8; $addr += $byte2 << 8;
$addr += $byte3 << 16; $addr += $byte3 << 16;
if ($branch) {
set_operand(sprintf("%s", get_label($addr)));
add_comment(sprintf("0x%.6x", $addr));
} else {
set_operand(sprintf("0x%.6x", $addr)); set_operand(sprintf("0x%.6x", $addr));
}
} }
## ASSUMPTION: This is always the last operand!!! ## ASSUMPTION: This is always the last operand!!!

Loading…
Cancel
Save