public void passTwo() {
		// iterate through moduleList
		Iterator<ObjectModule> it = moduleList.iterator();

		while (it.hasNext()) {
			ObjectModule currModule = it.next();
			// base address of the current module
			int currBaseAddress = currModule.getBaseAddress(); 
			// get current module's program text
			List<InstructionPair> codeList = currModule.getCodeList(); 

			// iterate through programText
			for (int i = 0; i < codeList.size(); i++) {
				char currInstrType = codeList.get(i).instrType;
				int currInstr = codeList.get(i).instr;

				switch (currInstrType) {
				case ('I'):
					resolveImAddress(currInstr);
					break;
				case ('A'):
					resolveAbsAddress(currInstr);
					break;
				case ('R'):
					resolveRelAddress(currInstr, currBaseAddress);
					break;
				case ('E'):
					resolveExtAddress(currInstr, currModule);
					break;
				default:
					System.out.print("Invalid instruction type.");
					break;
				}
			}
			checkUseListUsage(currModule);
		}
		checkSymbolTableUsage();
	}