If you are reading/writing this, I would simply translate it at the Stream level, somthing like:
int b = source.ReadByte();
if (b < 0) throw new EndOfStreamException();
int operx = b & 15;
int oper = (b >> 4) & 15;
b = source.ReadByte();
if (b < 0) throw new EndOfStreamException();
int prefix = b & 7;
int reg = (b >> 3) & 31;
b = source.ReadByte();
if (b < 0) throw new EndOfStreamException();
int period = b & 7;
int fas = (b >> 3) & 3;
int tar = (b >> 5) & 7;
If you are doing lots of it, you could wrap it up into something more elegant, perhaps using attributes to specify the offsets - but for 10? meh... not worth it. Writing a robust generic converter is lots of hard work.