public int LabelSetting() { int pos = 0; Iterator<VMCode> it = statement.iterator(); while (it.hasNext()) { VMCode code = it.next(); if (code.getOp() == VMCode.VM_MAXCOMMAND) { labels.get(code.getArg1()).setPos(pos); } else { pos += code.getSize(); } } Iterator<VMCode> it2 = statement.iterator(); while (it2.hasNext()) { VMCode code = it2.next(); switch (code.getOp()) { case VMCode.VM_JMP: case VMCode.VM_JMPC: case VMCode.VM_JMPNC: code.setArg1(labels.get(code.getArg1()).getPos()); break; } } return pos; }