public void execute(Processor processor)
	throws DataAccessException, CodeAccessException {
		try {
			if ( processor.getProgramCounter() < 0 ||
					processor.getProgramCounter() > MEMORY_MAX_SIZE ) {
				throw new CodeAccessException("Program counter out of range!");
			}
			CodeLine line = code[processor.getProgramCounter()];
			System.out.println(line);
			line.execute(processor, this, line.getArg());
		} catch (ArrayIndexOutOfBoundsException e) {
			throw new CodeAccessException("Array Index Out Of Bounds!");
		} catch (NullPointerException e) {
			throw new CodeAccessException("Null Pointer Exception!");
		}
	}