@Override
	public void execute(Processor processor, Program program, int arg) 
	throws DataAccessException {
		if ( program.getIndirect(processor.getProgramCounter()) ) {
			int divisor = program.getMemory(program.getMemory(arg));
			if ( divisor != 0 ) {
				processor.setAccumulator( processor.getAccumulator() / divisor );
				processor.setProgramCounter( processor.getProgramCounter() + 1 );
			} else {
				throw new DivideZeroException("Divided by Zero!");
			}
		} else {
			int divisor = program.getMemory(arg);
			if ( divisor != 0 ) {
				processor.setAccumulator( processor.getAccumulator() / divisor );
				processor.setProgramCounter( processor.getProgramCounter() + 1 );
			} else {
				throw new DivideZeroException("Divided by Zero!");
			}
		}
	}