public override List <string> Generate()
 {
     return(new List <string>()
     {
         WMIPS.lw("$a0", (-Variable * 4).ToString(), "$sp"),
         WMIPS.sw("$a0", (-(size + pcount) * 4).ToString(), "$sp")
     });
 }
        public override List <string> Generate()
        {
            var lines = new List <string>();

            lines.Add(WMIPS.lw("$a0", (-R * 4).ToString(), "$sp"));
            lines.Add(WMIPS.sw("$a0", (-L * 4).ToString(), "$sp"));
            return(lines);
        }
        public override List <string> Generate()
        {
            var lines = new List <string>()
            {
                WMIPS.sw("$zero", (-Var * 4).ToString(), "$sp")
            };

            return(lines);
        }
        public override List <string> Generate()
        {
            var lines = new List <string>();

            lines.Add(WMIPS.la("$a0", R.LFull));
            lines.Add(WMIPS.lw("$a1", (-4 * L).ToString(), "$sp"));
            lines.Add(WMIPS.sw("$a0", (Offset * 4).ToString(), "$a1"));
            return(lines);
        }
예제 #5
0
        public override List <string> Generate()
        {
            var lines = new List <string>();

            lines.Add(WMIPS.li("$v0", 9));
            lines.Add(WMIPS.li("$a0", 4 * Size));
            lines.Add(WMIPS.SYSCALL);
            lines.Add(WMIPS.sw("$v0", (-4 * Var).ToString(), "$sp"));
            return(lines);
        }
        public override List <string> Generate()
        {
            var lines = new List <string>();

            lines.Add(WMIPS.sw("$ra", (-4 * size).ToString(), "$sp"));
            lines.Add(WMIPS.addiu("$sp", "$sp", -4 * (size + 1)));
            lines.Add(WMIPS.jal(Name.LFull));
            lines.Add(WMIPS.addiu("$sp", "$sp", 4 * (size + 1)));
            lines.Add(WMIPS.lw("$ra", (-4 * size).ToString(), "$sp"));
            if (OutResult >= 0)
            {
                lines.Add(WMIPS.sw("$v0", (-4 * OutResult).ToString(), "$sp"));
            }
            return(lines);
        }