NAME
CPU::Z80::Disassembler::Labels - All labels used in the disassembled program
SYNOPSYS
$labels = CPU::Z80::Disassembler::Labels->new();
$labels->add($addr, $name, $from_addr);
$found = $labels->search_addr($addr);
$found = $labels->search_name($name);
@labels = $labels->search_all;
print $labels->max_length;
$label = $labels->next_label($addr);
DESCRIPTION
Contains an indexed list of all CPU::Z80::Diassembler::Label labels in the disassembled program.
Each label is created by the add() method, that simultaneously prepares the indexes for a fast search. There are also methods to search for labels at a given address of with a given name.
This module assumes that the address of a label does not change after being defined, i.e. there is never the need to reindex all labels.
FUNCTIONS
new
Creates a new empty object.
add
Creates and adds a new label to the indexes. If the same name and address as an existing label is given then the $from_addr is updated.
If the name is not given, creates a temporary label of the form L_HHHH.
It is an error to add a label already added with a different address.
max_length
Length of the longest label name of all defined labels. This is updated when a label is added to the index, and can be used for formating label lists in columns.
search_addr
Return the label object defined at the given address, undef if none.
search_name
Return the label object with the given name, undef if none.
search_all
Return all the defined label objects.
next_label
Return the first label defined on the given address or after. If no address is given, returns the first defined label. Returns undef if there is no label on the address or after.
This can be used to find the next label after the current instruction.