/// <summary> /// r,adr[,x] のオペランドを解釈します。 /// </summary> /// <param name="lexer">オペランドの字句を解析する <see cref="OperandLexer"/> のオブジェクトです。</param> /// <param name="opcode">このオペラントの命令の第 1 語のオペコードの値です。</param> /// <returns> /// 解釈した結果として生成した <see cref="RAdrXOperand"/> オブジェクトを返します。 /// </returns> internal static RAdrXOperand Parse(OperandLexer lexer, UInt16 opcode) { RegisterOperand r = RegisterOperand.Parse(lexer); lexer.SkipComma(); AdrXOperand adrX = AdrXOperand.Parse(lexer); return(new RAdrXOperand(opcode, r, adrX)); }
/// <summary> /// オペランドが adr,x の機械語命令を作成します。 /// </summary> /// <param name="mnemonic">命令のニーモニックを表わす文字列です。</param> /// <param name="opcode">この命令のオペコードの値です。</param> /// <returns></returns> internal static MachineInstruction MakeAdrX(String mnemonic, UInt16 opcode) { return(new MachineInstruction( mnemonic, Resources.SYN_AdrX, (lexer) => AdrXOperand.Parse(lexer, opcode))); }