/// <summary> /// レジスタへの値の書きこみ /// </summary> /// <param name="reg">レジスタ番号</param> /// <param name="value">書きこむ値</param> private void RegWrite(MOpeland.EfRegName reg, uint value) { switch (reg) { case MOpeland.EfRegName.efRegF0: firjal.F0 = value; break; case MOpeland.EfRegName.efRegF1: firjal.F1 = value; break; case MOpeland.EfRegName.efRegF2: firjal.F2 = value; break; case MOpeland.EfRegName.efRegF3: firjal.F3 = value; break; case MOpeland.EfRegName.efRegF4: firjal.F4 = value; break; case MOpeland.EfRegName.efRegF5: firjal.F5 = value; break; case MOpeland.EfRegName.efRegF6: firjal.F6 = value; break; case MOpeland.EfRegName.efRegXX: firjal.XX = value; break; default: // 例外スローしたい break; } }
/// <summary> /// レジスタの内容読み出し /// </summary> /// <param name="reg">レジスタ番号</param> /// <returns></returns> private uint RegRead(MOpeland.EfRegName reg) { uint retval = 0; // レジスタ管理のclassではなく、オペランド側の名前として、ここで解決 switch (reg) { case MOpeland.EfRegName.efRegF0: retval = firjal.F0; break; case MOpeland.EfRegName.efRegF1: retval = firjal.F1; break; case MOpeland.EfRegName.efRegF2: retval = firjal.F2; break; case MOpeland.EfRegName.efRegF3: retval = firjal.F3; break; case MOpeland.EfRegName.efRegF4: retval = firjal.F4; break; case MOpeland.EfRegName.efRegF5: retval = firjal.F5; break; case MOpeland.EfRegName.efRegF6: retval = firjal.F6; break; case MOpeland.EfRegName.efRegXX: retval = firjal.XX; break; default: // 例外スローしたい break; } return(retval); }