public void ADD_rmreg16_imm16 () { // ADD BP, 0xd5c // ADD (R16.BP, 0xd5c) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (R16.BP, 0xd5c); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0x81, 0xc5, 0x5c, 0xd }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD BP, 0xd5c' failed."); }
public void ADD_rmreg32_reg32 () { // ADD EBP, EBP // ADD (R32.EBP, R32.EBP) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (R32.EBP, R32.EBP); asm.Encode (memoryStream); byte [] target = new byte [] { 0x1, 0xed }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD EBP, EBP' failed."); }
public void ADD_rmreg8_imm8 () { // ADD BH, 0x4 // ADD (R8.BH, 0x4) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (R8.BH, 0x4); asm.Encode (memoryStream); byte [] target = new byte [] { 0x80, 0xc7, 0x4 }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD BH, 0x4' failed."); }
public void ADD_rmreg8_reg8 () { // ADD BH, DH // ADD (R8.BH, R8.DH) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (R8.BH, R8.DH); asm.Encode (memoryStream); byte [] target = new byte [] { 0x0, 0xf7 }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD BH, DH' failed."); }
public void ADD_rmreg16_reg16 () { // ADD CX, AX // ADD (R16.CX, R16.AX) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (R16.CX, R16.AX); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0x1, 0xc1 }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD CX, AX' failed."); }
public void ADD_mem16_reg16 () { // ADD [CS:EDX], BP // ADD (new WordMemory(Seg.CS, R32.EDX, null, 0), R16.BP) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (new WordMemory (Seg.CS, R32.EDX, null, 0), R16.BP); asm.Encode (memoryStream); byte [] target = new byte [] { 0x2e, 0x66, 0x1, 0x2a }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD [CS:EDX], BP' failed."); }
public void ADD_mem32_imm8 () { // ADD DWord [CS:EBX + 0x12345678], 0xc // ADD (new DWordMemory(Seg.CS, R32.EBX, null, 0, 0x12345678), 0xc) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (new DWordMemory (Seg.CS, R32.EBX, null, 0, 0x12345678), 0xc); asm.Encode (memoryStream); byte [] target = new byte [] { 0x2e, 0x83, 0x83, 0x78, 0x56, 0x34, 0x12, 0xc }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD DWord [CS:EBX + 0x12345678], 0xc' failed."); }
public void ADD_mem16_imm16 () { // ADD Word [0x12345678], 0x77b // ADD (new WordMemory(null, null, null, 0, 0x12345678), 0x77b) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (new WordMemory (null, null, null, 0, 0x12345678), 0x77b); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0x81, 0x5, 0x78, 0x56, 0x34, 0x12, 0x7b, 0x7 }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD Word [0x12345678], 0x77b' failed."); }
public void ADD_mem32_imm32 () { // ADD DWord [ES:0x12345678], 0x55afc7d // ADD (new DWordMemory(Seg.ES, null, null, 0, 0x12345678), 0x55afc7d) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (new DWordMemory (Seg.ES, null, null, 0, 0x12345678), 0x55afc7d); asm.Encode (memoryStream); byte [] target = new byte [] { 0x26, 0x81, 0x5, 0x78, 0x56, 0x34, 0x12, 0x7d, 0xfc, 0x5a, 0x5 }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD DWord [ES:0x12345678], 0x55afc7d' failed."); }
public void ADD_reg32_mem32 () { // ADD ESI, [ESI*2] // ADD (R32.ESI, new DWordMemory(null, null, R32.ESI, 1)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (R32.ESI, new DWordMemory (null, null, R32.ESI, 1)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x3, 0x34, 0x36 }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD ESI, [ESI*2]' failed."); }
public void ADD_mem8_imm8 () { // ADD Byte [ESP + EBX*2 + 0x12345678], 0x8 // ADD (new ByteMemory(null, R32.ESP, R32.EBX, 1, 0x12345678), 0x8) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (new ByteMemory (null, R32.ESP, R32.EBX, 1, 0x12345678), 0x8); asm.Encode (memoryStream); byte [] target = new byte [] { 0x80, 0x84, 0x5c, 0x78, 0x56, 0x34, 0x12, 0x8 }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD Byte [ESP + EBX*2 + 0x12345678], 0x8' failed."); }
public void ADD_reg16_mem16 () { // ADD CX, [GS:EBX + 0x12345678] // ADD (R16.CX, new WordMemory(Seg.GS, R32.EBX, null, 0, 0x12345678)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (R16.CX, new WordMemory (Seg.GS, R32.EBX, null, 0, 0x12345678)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x65, 0x66, 0x3, 0x8b, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD CX, [GS:EBX + 0x12345678]' failed."); }
public void ADD_reg8_mem8 () { // ADD AL, [EDI] // ADD (R8.AL, new ByteMemory(null, R32.EDI, null, 0)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (R8.AL, new ByteMemory (null, R32.EDI, null, 0)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x2, 0x7 }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD AL, [EDI]' failed."); }
public void ADD_mem32_reg32 () { // ADD [EAX + EDX*1], EBX // ADD (new DWordMemory(null, R32.EAX, R32.EDX, 0), R32.EBX) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (new DWordMemory (null, R32.EAX, R32.EDX, 0), R32.EBX); asm.Encode (memoryStream); byte [] target = new byte [] { 0x1, 0x1c, 0x10 }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD [EAX + EDX*1], EBX' failed."); }
public void ADD_rmreg32_imm32 () { // ADD ESP, 0x54b85b5 // ADD (R32.ESP, 0x54b85b5) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (R32.ESP, 0x54b85b5); asm.Encode (memoryStream); byte [] target = new byte [] { 0x81, 0xc4, 0xb5, 0x85, 0x4b, 0x5 }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD ESP, 0x54b85b5' failed."); }
public void ADD_mem16_imm8 () { // ADD Word [CS:0x12345678], 0x6 // ADD (new WordMemory(Seg.CS, null, null, 0, 0x12345678), 0x6) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (new WordMemory (Seg.CS, null, null, 0, 0x12345678), 0x6); asm.Encode (memoryStream); byte [] target = new byte [] { 0x2e, 0x66, 0x83, 0x5, 0x78, 0x56, 0x34, 0x12, 0x6 }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD Word [CS:0x12345678], 0x6' failed."); }
public void ADD_rmreg32_imm8 () { // ADD ESI, 0x9 // ADD (R32.ESI, 0x9) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (R32.ESI, 0x9); asm.Encode (memoryStream); byte [] target = new byte [] { 0x83, 0xc6, 0x9 }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD ESI, 0x9' failed."); }
public void ADD_mem8_reg8 () { // ADD [DS:EAX], CL // ADD (new ByteMemory(Seg.DS, R32.EAX, null, 0), R8.CL) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.ADD (new ByteMemory (Seg.DS, R32.EAX, null, 0), R8.CL); asm.Encode (memoryStream); byte [] target = new byte [] { 0x3e, 0x0, 0x8 }; Assert.IsTrue (CompareData (memoryStream, target), "'ADD [DS:EAX], CL' failed."); }