public void CMOVE_reg32_rmreg32 () { // CMOVE EBX, EAX // CMOVE (R32.EBX, R32.EAX) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVE (R32.EBX, R32.EAX); asm.Encode (memoryStream); byte [] target = new byte [] { 0xf, 0x44, 0xd8 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVE EBX, EAX' failed."); }
public void CMOVE_reg32_mem32 () { // CMOVE ESI, [EDI + ECX*4 + 0x12345678] // CMOVE (R32.ESI, new DWordMemory(null, R32.EDI, R32.ECX, 2, 0x12345678)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVE (R32.ESI, new DWordMemory (null, R32.EDI, R32.ECX, 2, 0x12345678)); asm.Encode (memoryStream); byte [] target = new byte [] { 0xf, 0x44, 0xb4, 0x8f, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVE ESI, [EDI + ECX*4 + 0x12345678]' failed."); }
public void CMOVE_reg16_rmreg16 () { // CMOVE AX, AX // CMOVE (R16.AX, R16.AX) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVE (R16.AX, R16.AX); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0xf, 0x44, 0xc0 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVE AX, AX' failed."); }
public void CMOVE_reg16_mem16 () { // CMOVE BP, [SS:0x12345678] // CMOVE (R16.BP, new WordMemory(Seg.SS, null, null, 0, 0x12345678)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMOVE (R16.BP, new WordMemory (Seg.SS, null, null, 0, 0x12345678)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x36, 0x66, 0xf, 0x44, 0x2d, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMOVE BP, [SS:0x12345678]' failed."); }