示例#1
0
        internal override String[] ExpandMacro(Label label)
        {
            String[] result = new String[7];
            // LABEL    POP     0,GR7
            //          POP     0,GR6
            //          POP     0,GR5
            //          POP     0,GR4
            //          POP     0,GR3
            //          POP     0,GR2
            //          POP     0,GR1
            result[0] = ProgramLine.Generate(label, MnemonicDef.POP, RegisterDef.GR7);
            result[1] = ProgramLine.Generate(null, MnemonicDef.POP, RegisterDef.GR6);
            result[2] = ProgramLine.Generate(null, MnemonicDef.POP, RegisterDef.GR5);
            result[3] = ProgramLine.Generate(null, MnemonicDef.POP, RegisterDef.GR4);
            result[4] = ProgramLine.Generate(null, MnemonicDef.POP, RegisterDef.GR3);
            result[5] = ProgramLine.Generate(null, MnemonicDef.POP, RegisterDef.GR2);
            result[6] = ProgramLine.Generate(null, MnemonicDef.POP, RegisterDef.GR1);

            return(result);
        }
示例#2
0
        internal override String[] ExpandMacro(Label label)
        {
            String[] result = new String[7];

            // LABEL    PUSH    0,GR1
            //          PUSH    0,GR2
            //          LAD     GR1,BUF
            //          LAD     GR2,LEN
            //          SVC     1 or 2
            //          POP     GR2
            //          POP     GR1
            result[0] = ProgramLine.Generate(label, MnemonicDef.PUSH, 0, SvcDef.BufferAddrRegister);
            result[1] = ProgramLine.Generate(null, MnemonicDef.PUSH, 0, SvcDef.LengthRegister);
            result[2] = ProgramLine.Generate(null, MnemonicDef.LAD, SvcDef.BufferAddrRegister, AreaSpec.Buffer.Name);
            result[3] = ProgramLine.Generate(null, MnemonicDef.LAD, SvcDef.LengthRegister, AreaSpec.Length.Name);
            result[4] = ProgramLine.Generate(null, MnemonicDef.SVC, m_svcOperand);
            result[5] = ProgramLine.Generate(null, MnemonicDef.POP, SvcDef.LengthRegister);
            result[6] = ProgramLine.Generate(null, MnemonicDef.POP, SvcDef.BufferAddrRegister);

            return(result);
        }
 internal static String Generate(Label label, params Constant[] constants)
 {
     return(ProgramLine.Generate(label, MnemonicDef.DC, constants));
 }