CPU::Z80::Disassembler::Labels - All labels used in the disassembled program
$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);
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.
Creates a new empty object.
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.
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.
Return the label object defined at the given address, undef if none.
Return the label object with the given name, undef if none.
Return all the defined label objects.
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.