示例#1
0
 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;
 }