public void CMOVPO_reg32_rmreg32 () { // CMOVPO EDX, EBP // CMOVPO (R32.EDX, R32.EBP) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVPO (R32.EDX, R32.EBP); asm.Encode (memoryStream); byte [] target = new byte [] { 0xf, 0x4b, 0xd5 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVPO EDX, EBP' failed."); }
public void CMOVPO_reg32_mem32 () { // CMOVPO EAX, [CS:EBX + 0x12345678] // CMOVPO (R32.EAX, new DWordMemory(Seg.CS, R32.EBX, null, 0, 0x12345678)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVPO (R32.EAX, new DWordMemory (Seg.CS, R32.EBX, null, 0, 0x12345678)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x2e, 0xf, 0x4b, 0x83, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVPO EAX, [CS:EBX + 0x12345678]' failed."); }
public void CMOVPO_reg16_rmreg16 () { // CMOVPO CX, DX // CMOVPO (R16.CX, R16.DX) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVPO (R16.CX, R16.DX); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0xf, 0x4b, 0xca }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVPO CX, DX' failed."); }
public void CMOVPO_reg16_mem16 () { // CMOVPO BX, [EBX*2] // CMOVPO (R16.BX, new WordMemory(null, null, R32.EBX, 1)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVPO (R16.BX, new WordMemory (null, null, R32.EBX, 1)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0xf, 0x4b, 0x1c, 0x1b }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVPO BX, [EBX*2]' failed."); }