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); }
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)); }