public void CMP_rmreg16_imm16 () { // CMP AX, 0xa82 // CMP (R16.AX, 0xa82) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (R16.AX, 0xa82); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0x3d, 0x82, 0xa }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP AX, 0xa82' failed."); }
public void CMP_rmreg32_reg32 () { // CMP EBP, EBP // CMP (R32.EBP, R32.EBP) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (R32.EBP, R32.EBP); asm.Encode (memoryStream); byte [] target = new byte [] { 0x39, 0xed }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP EBP, EBP' failed."); }
public void CMP_rmreg8_imm8 () { // CMP CH, 0x3 // CMP (R8.CH, 0x3) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (R8.CH, 0x3); asm.Encode (memoryStream); byte [] target = new byte [] { 0x80, 0xfd, 0x3 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP CH, 0x3' failed."); }
public void CMP_rmreg8_reg8 () { // CMP CH, CL // CMP (R8.CH, R8.CL) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (R8.CH, R8.CL); asm.Encode (memoryStream); byte [] target = new byte [] { 0x38, 0xcd }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP CH, CL' failed."); }
public void CMP_rmreg16_reg16 () { // CMP SI, AX // CMP (R16.SI, R16.AX) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (R16.SI, R16.AX); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0x39, 0xc6 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP SI, AX' failed."); }
public void CMP_mem16_reg16 () { // CMP [0x12345678], DI // CMP (new WordMemory(null, null, null, 0, 0x12345678), R16.DI) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (new WordMemory (null, null, null, 0, 0x12345678), R16.DI); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0x39, 0x3d, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP [0x12345678], DI' failed."); }
public void CMP_mem32_imm8 () { // CMP DWord [EDX + EBP*1 + 0x12345678], 0xb // CMP (new DWordMemory(null, R32.EDX, R32.EBP, 0, 0x12345678), 0xb) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (new DWordMemory (null, R32.EDX, R32.EBP, 0, 0x12345678), 0xb); asm.Encode (memoryStream); byte [] target = new byte [] { 0x83, 0xbc, 0x2a, 0x78, 0x56, 0x34, 0x12, 0xb }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP DWord [EDX + EBP*1 + 0x12345678], 0xb' failed."); }
public void CMP_mem16_imm16 () { // CMP Word [ES:EBP], 0x8ad // CMP (new WordMemory(Seg.ES, R32.EBP, null, 0), 0x8ad) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (new WordMemory (Seg.ES, R32.EBP, null, 0), 0x8ad); asm.Encode (memoryStream); byte [] target = new byte [] { 0x26, 0x66, 0x81, 0x7d, 0x0, 0xad, 0x8 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP Word [ES:EBP], 0x8ad' failed."); }
public void CMP_mem32_imm32 () { // CMP DWord [ES:0x12345678], 0x6abbff6 // CMP (new DWordMemory(Seg.ES, null, null, 0, 0x12345678), 0x6abbff6) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (new DWordMemory (Seg.ES, null, null, 0, 0x12345678), 0x6abbff6); asm.Encode (memoryStream); byte [] target = new byte [] { 0x26, 0x81, 0x3d, 0x78, 0x56, 0x34, 0x12, 0xf6, 0xbf, 0xab, 0x6 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP DWord [ES:0x12345678], 0x6abbff6' failed."); }
public void CMP_reg32_mem32 () { // CMP EDI, [ESI*8] // CMP (R32.EDI, new DWordMemory(null, null, R32.ESI, 3)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (R32.EDI, new DWordMemory (null, null, R32.ESI, 3)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x3b, 0x3c, 0xf5, 0x0, 0x0, 0x0, 0x0 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP EDI, [ESI*8]' failed."); }
public void CMP_mem8_imm8 () { // CMP Byte [DS:0x12345678], 0x7 // CMP (new ByteMemory(Seg.DS, null, null, 0, 0x12345678), 0x7) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (new ByteMemory (Seg.DS, null, null, 0, 0x12345678), 0x7); asm.Encode (memoryStream); byte [] target = new byte [] { 0x3e, 0x80, 0x3d, 0x78, 0x56, 0x34, 0x12, 0x7 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP Byte [DS:0x12345678], 0x7' failed."); }
public void CMP_reg16_mem16 () { // CMP SI, [0x12345678] // CMP (R16.SI, new WordMemory(null, null, null, 0, 0x12345678)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (R16.SI, new WordMemory (null, null, null, 0, 0x12345678)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0x3b, 0x35, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP SI, [0x12345678]' failed."); }
public void CMP_reg8_mem8 () { // CMP BL, [DS:0x12345678] // CMP (R8.BL, new ByteMemory(Seg.DS, null, null, 0, 0x12345678)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (R8.BL, new ByteMemory (Seg.DS, null, null, 0, 0x12345678)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x3e, 0x3a, 0x1d, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP BL, [DS:0x12345678]' failed."); }
public void CMP_mem32_reg32 () { // CMP [ECX], EDX // CMP (new DWordMemory(null, R32.ECX, null, 0), R32.EDX) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (new DWordMemory (null, R32.ECX, null, 0), R32.EDX); asm.Encode (memoryStream); byte [] target = new byte [] { 0x39, 0x11 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP [ECX], EDX' failed."); }
public void CMP_rmreg32_imm32 () { // CMP EBP, 0xea3f51f // CMP (R32.EBP, 0xea3f51f) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (R32.EBP, 0xea3f51f); asm.Encode (memoryStream); byte [] target = new byte [] { 0x81, 0xfd, 0x1f, 0xf5, 0xa3, 0xe }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP EBP, 0xea3f51f' failed."); }
public void CMP_mem16_imm8 () { // CMP Word [SS:0x12345678], 0xa // CMP (new WordMemory(Seg.SS, null, null, 0, 0x12345678), 0xa) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (new WordMemory (Seg.SS, null, null, 0, 0x12345678), 0xa); asm.Encode (memoryStream); byte [] target = new byte [] { 0x36, 0x66, 0x83, 0x3d, 0x78, 0x56, 0x34, 0x12, 0xa }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP Word [SS:0x12345678], 0xa' failed."); }
public void CMP_rmreg32_imm8 () { // CMP EDI, 0xa // CMP (R32.EDI, 0xa) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (R32.EDI, 0xa); asm.Encode (memoryStream); byte [] target = new byte [] { 0x83, 0xff, 0xa }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP EDI, 0xa' failed."); }
public void CMP_mem8_reg8 () { // CMP [ES:EBX + 0x12345678], DL // CMP (new ByteMemory(Seg.ES, R32.EBX, null, 0, 0x12345678), R8.DL) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.CMP (new ByteMemory (Seg.ES, R32.EBX, null, 0, 0x12345678), R8.DL); asm.Encode (memoryStream); byte [] target = new byte [] { 0x26, 0x38, 0x93, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'CMP [ES:EBX + 0x12345678], DL' failed."); }