public override string ToString()
        {
            DecodeInst();

            ASMRepr = strInst[(int)opcode] + (sbit ? ((opcode != 10)? "s": ""): "") + (Cond < 0b1110 ? CondSufx[Cond] : "") +
                      "\t" + CPU.GetStrRegr(I_Reg, (opcode == 10 ? (int)Rn : (int)Rd));

            if (strInst[(int)opcode] == "mul")
            {
                ASMRepr += ", " + CPU.GetStrRegr(I_Reg, (int)Rm) + ", " + CPU.GetStrRegr(I_Reg, (int)Rs);//check on that
            }
            else if (new List <string>()
            {
                "mov", "mvn", "cmp"
            }.Contains(strInst[(int)opcode]))
            {
                ASMRepr += ", " + Oper2.ToString();
            }
            else
            {
                ASMRepr += ", " + CPU.GetStrRegr(I_Reg, (int)Rn) + ", " + Oper2.ToString();
            }

            return(ASMRepr);
        }
 public override string ToString()
 {
     GetValue();
     if (imm > 0)
     {
         return(CPU.GetStrRegr((int)reg) + ", " + Repr_shifts[shift] + " #" + imm.ToString());
     }
     else
     {
         return(CPU.GetStrRegr((int)reg));
     }
 }
예제 #3
0
        public override string ToString()
        {
            DecodeInst();                 //------FD(IA)---------------   ----------FD(DB)----------
            bool pushpop = (Rn == 13) && ((P == 0 && U == 1 && W == 1) || (P == 1 && U == 0 && W == 1));
            int  indx    = (int)(L < 4 ? (L + (B == 1 ? 2 : B)) : (L + (!pushpop ? 0 : 2)));

            ASMRepr = StrInstr[indx] + (Cond < 0b1110 ? CondSufx[Cond] : "") + "\t";

            if (typ != 4)
            {
                ASMRepr += CPU.GetStrRegr(I_Reg, (int)Rd) + ", [" + CPU.GetStrRegr(I_Reg, (int)Rn) + LsOffset.ToString() + "]" + (W == 1 ? "!" : "");
            }
            else
            {
                string strReglist = "";
                for (int i = 0; i < Reglist.Count; ++i)
                {
                    strReglist += (i == 0 ? "" : ", ") + CPU.GetStrRegr(I_Reg, Reglist[i]);
                }

                ASMRepr += (pushpop ? "" : CPU.GetStrRegr(I_Reg, (int)Rn) + (W == 1 ? "!" : "") + ", ") + "{" + strReglist + "}";
            }
            return(ASMRepr);
        }
        public override string ToString()
        {
            DecodeInst();

            ASMRepr = strInst[indx] + (Cond < 0b1110 ? CondSufx[Cond] : "") + "\t" + (indx > 1 ? CPU.GetStrRegr(I_Reg, (int)Rm) :
                                                                                      (InstAddr + 8 + PC_SOffset).ToString());

            return(ASMRepr);
        }
예제 #5
0
 public override string ToString()
 {
     GetValue();
     return(", " + (U == 1 ? "" : "-") + CPU.GetStrRegr((int)reg) + (imm > 0 ? ", " + Repr_shifts[shift] + " #" + imm.ToString() : ""));
 }
 public override string ToString()
 {
     GetValue();
     return(CPU.GetStrRegr(reg) + ", " + Repr_shifts[shift] + " " + CPU.GetStrRegr(reg2));
 }