public boolean issueCommand(Command c) {
		boolean result = false;
		
		if (c.getAssembly().equalsIgnoreCase("BREAK")) {
			breakFound = true;
			flushPipeline();
		}

		int foundEmptyRSIndex = -1;
		for (int i = 0; i < RS_SIZE; i++) {
			Command temp = RS.get(i);
			if (temp == null) {
				foundEmptyRSIndex = i;
				break;
			}
		}

		if (foundEmptyRSIndex == -1) {
			System.out.println("No empty registers in RS");
			return false;
		}

		int foundEmptyROBIndex = -1;
		for (int i = 0; i < ROB_SIZE; i++) {
			Command temp = ROB.get(i);
			if (temp == null) {
				foundEmptyROBIndex = i;
				break;
			}
		}

		if (foundEmptyROBIndex == -1) {
			System.out.println("No empty registers in ROB");
			return false;
		}

		// Create mapping between ROB and RS
		RS.add(foundEmptyRSIndex, c);
		ROB.add(foundEmptyROBIndex, c);
		rsToROB.put(foundEmptyRSIndex, foundEmptyROBIndex);

//		System.out.println("Command Issued! RS[" + foundEmptyRSIndex
//				+ "] -> ROB[" + foundEmptyROBIndex + "] " + c.toAddrAssembly());

		return result;
	}