public void CMOVB_reg32_rmreg32 () { // CMOVB EAX, EBP // CMOVB (R32.EAX, R32.EBP) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVB (R32.EAX, R32.EBP); asm.Encode (memoryStream); byte [] target = new byte [] { 0xf, 0x42, 0xc5 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVB EAX, EBP' failed."); }
public void CMOVB_reg32_mem32 () { // CMOVB EAX, [CS:EDI + 0x12345678] // CMOVB (R32.EAX, new DWordMemory(Seg.CS, R32.EDI, null, 0, 0x12345678)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVB (R32.EAX, new DWordMemory (Seg.CS, R32.EDI, null, 0, 0x12345678)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x2e, 0xf, 0x42, 0x87, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVB EAX, [CS:EDI + 0x12345678]' failed."); }
public void CMOVB_reg16_rmreg16 () { // CMOVB DX, SI // CMOVB (R16.DX, R16.SI) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVB (R16.DX, R16.SI); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0xf, 0x42, 0xd6 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVB DX, SI' failed."); }
public void CMOVB_reg16_mem16 () { // CMOVB SP, [EBX + 0x12345678] // CMOVB (R16.SP, new WordMemory(null, R32.EBX, null, 0, 0x12345678)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVB (R16.SP, new WordMemory (null, R32.EBX, null, 0, 0x12345678)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0xf, 0x42, 0xa3, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVB SP, [EBX + 0x12345678]' failed."); }