예제 #1
0
파일: Ldstr.cs 프로젝트: masdjab/il2asm
 public override void Compile(Instruction i, AsmBuilder ab, List <string> Offsets, MethodDefinition md)
 {
     if (!Compiler.ConstantIndex.Contains(i.Operand.ToString()))
     {
         string constant = "";
         foreach (var z in i.Operand.ToString())
         {
             constant += (byte)z + ", ";
         }
         constant = constant.Trim().TrimEnd(',');
         ab.GlobalVar(Utils.SafeName("STR" + i.Operand.ToString()), (i.Operand.ToString().Length - 1) + ",0 ,0 ,0 , " + constant, "db");
         Compiler.ConstantIndex.Add(i.Operand.ToString());
     }
     ab.Mov("eax", "dword " + Utils.SafeName("STR" + i.Operand.ToString()) + "");
     ab.Push("eax");
 }