void Verificar2Operandos(string spDestino, string spOrigen) { int indo = 0, indd = 0; if (spDestino.Contains(("reg")) && spOrigen.Contains(("reg"))) { Console.Write("reg reg\n"); bool ok = true; indd = tryParseInt(spDestino.Replace("reg", ""), ok); Console.Write("{0}\n", indd); if (!ok) { Console.Write("error en el primer operando."); } else { indo = tryParseInt(spOrigen.Replace("reg", ""), ok); if (!ok) { Console.Write("error en el segundo operando."); } else { emTipoOperando = eTipoOperando.TO_REGISTRO_REGISTRO; } } } else if (spDestino.Contains(("reg")) && !spOrigen.Contains(("reg"))) { Console.Write("reg !reg\n"); bool ok = true; indd = tryParseInt(spDestino.Replace("reg", ""), ok); if (!ok) { Console.Write("error en el primer operando."); } else { indo = tryParseInt(spOrigen, ok); if (!ok) { Console.Write("error en el segundo operando."); } else { emTipoOperando = eTipoOperando.TO_REGISTRO_INMEDIATO; } } } else if (!spDestino.Contains(("reg")) && !spOrigen.Contains(("reg"))) { Console.Write("!reg !reg\n"); bool ok = true; if (spDestino.Contains(("["))) { Console.Write("mem\n"); string[] sllDestino = spDestino.Split('['); string slDestino = sllDestino[1]; indd = tryParseInt(slDestino.Split(']')[0], ok); Console.Write("{0}\n", indd); if (!ok) { Console.Write("error en operando."); } else { emTipoOperando = eTipoOperando.TO_MEMORIA; } } else { indd = tryParseInt(spDestino, ok); if (!ok) { Console.Write("error en operando."); } else { emTipoOperando = eTipoOperando.TO_INMEDIATO; } } if (!ok) { Console.Write("error en el primer operando."); } else { indo = tryParseInt(spOrigen, ok); if (!ok) { Console.Write("error en el segundo operando."); } else { emTipoOperando = eTipoOperando.TO_INMEDIATO_INMEDIATO; } } } else if (!spDestino.Contains(("reg")) && spOrigen.Contains(("reg"))) { Console.Write("reg !reg\n"); bool ok = false; indd = tryParseInt(spDestino.Replace("reg", ""), ok); if (!ok) { Console.Write("error en el primer operando."); } else { indo = tryParseInt(spOrigen, ok); if (!ok) { Console.Write("error en el segundo operando."); } else { emTipoOperando = eTipoOperando.TO_REGISTRO_INMEDIATO; } } } imValOrigen = indo; imValDestino = indd; }
void Verificar1Operandos(string spDestino) { int indd = 0; if (spDestino.Contains(("reg"))) { Console.Write("reg\n"); bool ok = true; indd = tryParseInt(spDestino.Replace("reg", ""), ok); Console.Write("{0}\n", indd); if (!ok) { Console.Write("error en el primer operando."); } else { emTipoOperando = eTipoOperando.TO_REGISTRO; } } else if (!spDestino.Contains(("["))) { Console.Write("mem\n"); string[] sllDestino = spDestino.Split('['); string slDestino = sllDestino[1]; bool ok = true; indd = tryParseInt(slDestino.Split(']')[0], ok); Console.Write("{0}\n", indd); if (!ok) { Console.Write("error en operando."); } else { emTipoOperando = eTipoOperando.TO_MEMORIA; } } imValDestino = indd; }