edu.usp.ime.hipo.core
Class Processor

java.lang.Object
  extended by edu.usp.ime.hipo.core.Processor
Direct Known Subclasses:
HipoProcessor

public abstract class Processor
extends java.lang.Object

Uma classe que representa um processador abstrato.

Author:
Rafael Crivellari Saliba Schouery (schouery@gmail.com)

Field Summary
private  Instruction currentInstruction
          A instrução corrente, a qual o registrador de código está apontando.
private  boolean executing
          Indica se está executando ou não no presente momento.
private  In in
          O dispostivo de entrada do processador.
private  Memory memory
          A memória que o processador utiliza.
private  Out out
          O dispositivo de saída do processador.
 
Constructor Summary
Processor(Memory memory, In in, Out out)
          Cria um novo processador definindo sua memoria, dispositivo de saida e de entrada.
 
Method Summary
 void executeCurrentInstruction()
          Executa a instrução atual, alterando os registradores e a memória conforme necessário.
 Instruction getCurrentInstruction()
          Pega a Instrução atual do processador.
 In getIn()
          Pega o dispositívo de entrada do processador.
 Memory getMemory()
          Pega a memória do processador.
 Out getOut()
          Pega o dispositivo de saída do processador.
 boolean isExecuting()
          Acesso o valor de executing.
 void setCurrentInstruction(Instruction currentInstruction)
          Define uma nova instrução para ser a atual no processador.
 void setExecuting(boolean executing)
          Define o valor de executing.
 void setIn(In in)
          Define o novo dispositivo de entrada do processador.
 void setMemory(Memory memory)
          Define uma nova memória para o processador.
 void setOut(Out out)
          Define o dispositivo de saída do processador.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

executing

private boolean executing
Indica se está executando ou não no presente momento.


memory

private Memory memory
A memória que o processador utiliza.


out

private Out out
O dispositivo de saída do processador.


in

private In in
O dispostivo de entrada do processador.


currentInstruction

private Instruction currentInstruction
A instrução corrente, a qual o registrador de código está apontando.

Constructor Detail

Processor

public Processor(Memory memory,
                 In in,
                 Out out)
Cria um novo processador definindo sua memoria, dispositivo de saida e de entrada. Define que o processador não está em execução no momento.

Parameters:
memory - A memória a ser usada.
in - O dispositivo de entrada a ser usado.
out - O dispositivo de saída a ser usado.
Method Detail

isExecuting

public boolean isExecuting()
Acesso o valor de executing.

Returns:
O valor de executing.

setExecuting

public void setExecuting(boolean executing)
Define o valor de executing.

Parameters:
executing - O novo valor de executing.

getMemory

public Memory getMemory()
Pega a memória do processador.

Returns:
A memória do processador.

setMemory

public void setMemory(Memory memory)
Define uma nova memória para o processador.

Parameters:
memory - A nova memória a ser usada.

getOut

public Out getOut()
Pega o dispositivo de saída do processador.

Returns:
O dispositivo atual de saída do processador.

setOut

public void setOut(Out out)
Define o dispositivo de saída do processador.

Parameters:
out - O novo dispositivo de saída do processador.

getIn

public In getIn()
Pega o dispositívo de entrada do processador.

Returns:
O dispositivo de entrada atual do processador.

setIn

public void setIn(In in)
Define o novo dispositivo de entrada do processador.

Parameters:
in - O novo dispositovo de entrada a ser usado.

getCurrentInstruction

public Instruction getCurrentInstruction()
Pega a Instrução atual do processador.

Returns:
A instrução atual do processador.

setCurrentInstruction

public void setCurrentInstruction(Instruction currentInstruction)
Define uma nova instrução para ser a atual no processador.

Parameters:
currentInstruction - A nova instrução a ser usada.

executeCurrentInstruction

public void executeCurrentInstruction()
                               throws java.lang.Exception
Executa a instrução atual, alterando os registradores e a memória conforme necessário.

Throws:
java.lang.Exception - Devolve uma excessão caso algo de errado aconteça durante a execução da instrução atual.