Class UnknownInstruction


  • public class UnknownInstruction
    extends Instruction
    Represents an unknown or unhandled instruction.
    • Constructor Detail

      • UnknownInstruction

        public UnknownInstruction​(int opcode,
                                  int offset,
                                  int length)
        Constructs an UnknownInstruction with zero-filled operands.
        Parameters:
        opcode - The opcode of the instruction.
        offset - The bytecode offset of the instruction.
        length - The total length of the instruction in bytes.
      • UnknownInstruction

        public UnknownInstruction​(int opcode,
                                  int offset,
                                  int length,
                                  byte[] bytecode)
        Constructs an UnknownInstruction, copying the real operand bytes from the source bytecode so the instruction round-trips through write(java.io.DataOutputStream) and its operands can be inspected.
        Parameters:
        opcode - The opcode of the instruction.
        offset - The bytecode offset of the instruction.
        length - The total length of the instruction in bytes.
        bytecode - The source bytecode array to copy operand bytes from.
    • Method Detail

      • getOperands

        public byte[] getOperands()
        Returns:
        the raw operand bytes following the opcode
      • write

        public void write​(DataOutputStream dos)
                   throws IOException
        Writes the unknown opcode and its operands to the DataOutputStream.
        Specified by:
        write in class Instruction
        Parameters:
        dos - The DataOutputStream to write to.
        Throws:
        IOException - If an I/O error occurs.
      • getStackChange

        public int getStackChange()
        Returns the change in stack size caused by this instruction.
        Specified by:
        getStackChange in class Instruction
        Returns:
        The stack size change (assumed to be 0 for unknown instructions).
      • getLocalChange

        public int getLocalChange()
        Returns the change in local variables caused by this instruction.
        Specified by:
        getLocalChange in class Instruction
        Returns:
        The local variables size change (assumed to be 0 for unknown instructions).
      • toString

        public String toString()
        Returns a string representation of the instruction.
        Overrides:
        toString in class Instruction
        Returns:
        The unknown opcode in hexadecimal format.