public static void asm_swapf(Integer akt_Befehl, Prozessor cpu) {

		// Decode
		Integer adresse = getOpcodeFromToBit(akt_Befehl, 0, 6);
		Integer W_F_Switch = getOpcodeFromToBit(akt_Befehl, 7, 7);

		// Fetch
		Integer k = cpu.getSpeicherzellenWert(adresse);
		Integer w = cpu.getW();

		Integer result = k;

		PIC_Logger.logger.info("[SWAPF]: Vorher k= "
				+ Integer.toHexString(result));

		Integer low = getOpcodeFromToBit(result, 0, 3);
		Integer high = getOpcodeFromToBit(result, 4, 7);

		low = low << 4; // Swap
		result = high | low;

		PIC_Logger.logger.info("[SWAPF]: Nacher k= "
				+ Integer.toHexString(result));

		// Store
		if(W_F_Switch == 0) {
			cpu.setW(result, false);
		}
		else if(W_F_Switch == 1) {
			cpu.setSpeicherzellenWert(adresse, result, false);
		}
		else {
			PIC_Logger.logger.warning("W_F_Bitswitch Error!");
		}

		// PC++
		cpu.incPC();

	}