public void ModRm16Memop() { MemoryOperand m; PrimitiveType w = PrimitiveType.Word16; ModRmBuilder mrm = new ModRmBuilder(w, null); m = new MemoryOperand(w, Registers.bx, Registers.si, 1, Constant.Invalid); Assert.AreEqual(0, mrm.Get16AddressingModeMask(m)); m = new MemoryOperand(w, Registers.bx, Registers.di, 1, Constant.Invalid); Assert.AreEqual(1, mrm.Get16AddressingModeMask(m)); m = new MemoryOperand(w, Registers.bp, Registers.si, 1, Constant.Invalid); Assert.AreEqual(2, mrm.Get16AddressingModeMask(m)); m = new MemoryOperand(w, Registers.bp, Registers.di, 1, Constant.Invalid); Assert.AreEqual(3, mrm.Get16AddressingModeMask(m)); m = new MemoryOperand(w, Registers.si, Constant.Invalid); Assert.AreEqual(4, mrm.Get16AddressingModeMask(m)); m = new MemoryOperand(w, Registers.di, Constant.Invalid); Assert.AreEqual(5, mrm.Get16AddressingModeMask(m)); m = new MemoryOperand(w, Registers.bp, Constant.Invalid); Assert.AreEqual(0x46, mrm.Get16AddressingModeMask(m)); m = new MemoryOperand(w, Registers.bx, Constant.Invalid); Assert.AreEqual(7, mrm.Get16AddressingModeMask(m)); }