Exemple #1
0
 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;
 }
Exemple #2
0
 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;
 }