NAME
CPU::Z80::Assembler::JumpOpcode - Represents one jump assembly instruction to be computed at link time
SYNOPSIS
use CPU::Z80::Assembler::JumpOpcode;
$opcode = CPU::Z80::Assembler::Opcode->new(
short_jump => CPU::Z80::Assemble::Opcode->new( ... JR instr ...),
long_jump => CPU::Z80::Assemble::Opcode->new( ... JP instr ...));
$opcode->address;
$opcode->line;
$dist = short_jump_dist($address, \%symbol_table);
$bytes = $opcode->bytes($address, \%symbol_table);
$size = $opcode->size;
DESCRIPTION
This module defines the class that represents one jump instruction to be added to the object code. The object contains both the short jump form and the long jump form.
During address allocation all short jumps that are out of range are replaced by long jumps.
EXPORTS
Nothing.
FUNCTIONS
new
Creates a new object.
address
Address where this opcode is loaded, computed at link time.
short_jump
Returns the CPU::Z80::Assembler::Opcode object representing the short jump.
long_jump
Returns the CPU::Z80::Assembler::Opcode object representing the long jump.
line
Get/set the line - text, file name and line number where the token was read.
short_jump_dist
Gets the short jump distance, in relation to the address of the next instruction.
Returns more than 127 or less than -128 if the short jump is out of range.
bytes
$bytes = $opcode->bytes($address, \%symbol_table);
Computes all the expressions in the short jump and returns the bytes string with the result object code.
size
$size = $opcode->size;
Return the number of bytes that the short_jump opcode will generate.
BUGS and FEEDBACK
See CPU::Z80::Assembler.
SEE ALSO
CPU::Z80::Assembler CPU::Z80::Assembler::Opcode Asm::Preproc::Line
AUTHORS, COPYRIGHT and LICENCE
See CPU::Z80::Assembler.