|
|
@ -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,8 +1550,13 @@ 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!!! |
|
|
|
sub read_operand_rel |
|
|
|
sub read_operand_rel |
|
|
|