dioscuri.module.cpu32
Class SpanningCodeBlock

java.lang.Object
  extended by dioscuri.module.cpu32.SpanningCodeBlock
All Implemented Interfaces:
CodeBlock
Direct Known Subclasses:
SpanningProtectedModeCodeBlock, SpanningRealModeCodeBlock, SpanningVirtual8086ModeCodeBlock

public abstract class SpanningCodeBlock
extends java.lang.Object
implements CodeBlock

Author:
Bram Lohman, Bart Kiers

Constructor Summary
SpanningCodeBlock()
           
 
Method Summary
protected abstract  CodeBlock decode(Processor cpu)
           
 int execute(Processor cpu)
          Returns the number of equivalent x86 instructions executed.
 int getX86Count()
           
 int getX86Length()
           
 boolean handleMemoryRegionChange(int startAddress, int endAddress)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface dioscuri.module.cpu32.CodeBlock
getDisplayString
 

Constructor Detail

SpanningCodeBlock

public SpanningCodeBlock()
Method Detail

getX86Length

public int getX86Length()
Specified by:
getX86Length in interface CodeBlock
Returns:
-

getX86Count

public int getX86Count()
Specified by:
getX86Count in interface CodeBlock
Returns:
-

execute

public int execute(Processor cpu)
Description copied from interface: CodeBlock
Returns the number of equivalent x86 instructions executed. Negative results indicate an error

Specified by:
execute in interface CodeBlock
Returns:
the number of equivalent x86 instructions executed. Negative results indicate an error

decode

protected abstract CodeBlock decode(Processor cpu)
Parameters:
cpu -
Returns:
-

handleMemoryRegionChange

public boolean handleMemoryRegionChange(int startAddress,
                                        int endAddress)
Specified by:
handleMemoryRegionChange in interface CodeBlock
Parameters:
startAddress -
endAddress -
Returns:
-