public void CMOVPE_reg32_rmreg32 () { // CMOVPE EAX, EDI // CMOVPE (R32.EAX, R32.EDI) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVPE (R32.EAX, R32.EDI); asm.Encode (memoryStream); byte [] target = new byte [] { 0xf, 0x4a, 0xc7 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVPE EAX, EDI' failed."); }
public void CMOVPE_reg32_mem32 () { // CMOVPE EBP, [DS:ESP + ESI*2] // CMOVPE (R32.EBP, new DWordMemory(Seg.DS, R32.ESP, R32.ESI, 1)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVPE (R32.EBP, new DWordMemory (Seg.DS, R32.ESP, R32.ESI, 1)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x3e, 0xf, 0x4a, 0x2c, 0x74 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVPE EBP, [DS:ESP + ESI*2]' failed."); }
public void CMOVPE_reg16_rmreg16 () { // CMOVPE CX, SP // CMOVPE (R16.CX, R16.SP) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVPE (R16.CX, R16.SP); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0xf, 0x4a, 0xcc }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVPE CX, SP' failed."); }
public void CMOVPE_reg16_mem16 () { // CMOVPE AX, [EBX + 0x12345678] // CMOVPE (R16.AX, new WordMemory(null, R32.EBX, null, 0, 0x12345678)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVPE (R16.AX, new WordMemory (null, R32.EBX, null, 0, 0x12345678)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0xf, 0x4a, 0x83, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVPE AX, [EBX + 0x12345678]' failed."); }