public void processInstructions(int amount) {
		int instr = 0;
		int cycles = 0; // Amount of consumed cycles (afaik this is used internally somewhere)
		int opcode;
		
		while (instr++ != amount) {
			opcode = rom[pc] & 0xFF;
			
			if ((opcode & 0xC0) == Instructions.LD_R_R) {
				int dst = (opcode >> 3) & 7;
				int src = opcode & 7;
				registers[dst] = registers[src];
				cycles = 1;
				pc++;
			} else if (((opcode & 0xF8) == Instructions.CP_R) || opcode == Instructions.CP_N) {
				if (opcode == Instructions.CP_N) {
					pc++;
					int operand = rom[pc++];
					int a = registers[Register.A];
					setFlag(Flag.N, true);
					setFlag(Flag.Z, a == operand);
					setFlag(Flag.CY, a < operand);
					setFlag(Flag.H, (a & 0xF) < (operand & 0xF));
				}
			} else {
				System.err.println("Unknown Z80 instruction: $" + Integer.toHexString(opcode).toUpperCase() + ".");
				break;
			}
		}
	}