Encode() public method

Encodes the specified engine.
public Encode ( Engine engine, string target ) : bool
engine Engine The engine.
target string The target.
return bool
Esempio n. 1
0
	public void AAD_imm8 ()
	{
		// AAD 0xd
		// AAD (0xd)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.AAD (0xd);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0xd5, 0xd };
		Assert.IsTrue (CompareData (memoryStream, target), "'AAD 0xd' failed.");
	}
Esempio n. 2
0
	public void AAA ()
	{
		// AAA
		// AAA ()
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.AAA ();
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x37 };
		Assert.IsTrue (CompareData (memoryStream, target), "'AAA' failed.");
	}
Esempio n. 3
0
	public void OR_mem32_imm32 ()
	{
		// OR DWord [CS:EBP + EAX*8], 0xbeab706
		// OR (new DWordMemory(Seg.CS, R32.EBP, R32.EAX, 3), 0xbeab706)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.OR (new DWordMemory (Seg.CS, R32.EBP, R32.EAX, 3), 0xbeab706);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x2e, 0x81, 0x4c, 0xc5, 0x0, 0x6, 0xb7, 0xea, 0xb };
		Assert.IsTrue (CompareData (memoryStream, target), "'OR DWord [CS:EBP + EAX*8], 0xbeab706' failed.");
	}
Esempio n. 4
0
	public void OR_mem8_imm8 ()
	{
		// OR Byte [SS:0x12345678], 0x7
		// OR (new ByteMemory(Seg.SS, null, null, 0, 0x12345678), 0x7)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.OR (new ByteMemory (Seg.SS, null, null, 0, 0x12345678), 0x7);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x36, 0x80, 0xd, 0x78, 0x56, 0x34, 0x12, 0x7 };
		Assert.IsTrue (CompareData (memoryStream, target), "'OR Byte [SS:0x12345678], 0x7' failed.");
	}
Esempio n. 5
0
	public void OR_reg16_mem16 ()
	{
		// OR DX, [EDI + 0x12345678]
		// OR (R16.DX, new WordMemory(null, R32.EDI, null, 0, 0x12345678))
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.OR (R16.DX, new WordMemory (null, R32.EDI, null, 0, 0x12345678));
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x66, 0xb, 0x97, 0x78, 0x56, 0x34, 0x12 };
		Assert.IsTrue (CompareData (memoryStream, target), "'OR DX, [EDI + 0x12345678]' failed.");
	}
Esempio n. 6
0
	public void OR_mem32_reg32 ()
	{
		// OR [CS:EAX + EBX*2], EDI
		// OR (new DWordMemory(Seg.CS, R32.EAX, R32.EBX, 1), R32.EDI)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.OR (new DWordMemory (Seg.CS, R32.EAX, R32.EBX, 1), R32.EDI);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x2e, 0x9, 0x3c, 0x58 };
		Assert.IsTrue (CompareData (memoryStream, target), "'OR [CS:EAX + EBX*2], EDI' failed.");
	}
Esempio n. 7
0
	public void OR_mem16_reg16 ()
	{
		// OR [ES:EDI*2], DX
		// OR (new WordMemory(Seg.ES, null, R32.EDI, 1), R16.DX)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.OR (new WordMemory (Seg.ES, null, R32.EDI, 1), R16.DX);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x26, 0x66, 0x9, 0x14, 0x3f };
		Assert.IsTrue (CompareData (memoryStream, target), "'OR [ES:EDI*2], DX' failed.");
	}
Esempio n. 8
0
	public void NOT_rmreg32 ()
	{
		// NOT EDX
		// NOT (R32.EDX)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.NOT (R32.EDX);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0xf7, 0xd2 };
		Assert.IsTrue (CompareData (memoryStream, target), "'NOT EDX' failed.");
	}
Esempio n. 9
0
	public void NEG_rmreg8 ()
	{
		// NEG AH
		// NEG (R8.AH)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.NEG (R8.AH);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0xf6, 0xdc };
		Assert.IsTrue (CompareData (memoryStream, target), "'NEG AH' failed.");
	}
Esempio n. 10
0
	public void NEG_mem32 ()
	{
		// NEG DWord [CS:0x12345678]
		// NEG (new DWordMemory(Seg.CS, null, null, 0, 0x12345678))
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.NEG (new DWordMemory (Seg.CS, null, null, 0, 0x12345678));
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x2e, 0xf7, 0x1d, 0x78, 0x56, 0x34, 0x12 };
		Assert.IsTrue (CompareData (memoryStream, target), "'NEG DWord [CS:0x12345678]' failed.");
	}
Esempio n. 11
0
	public void NEG_mem16 ()
	{
		// NEG Word [EDX + EAX*4 + 0x12345678]
		// NEG (new WordMemory(null, R32.EDX, R32.EAX, 2, 0x12345678))
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.NEG (new WordMemory (null, R32.EDX, R32.EAX, 2, 0x12345678));
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x66, 0xf7, 0x9c, 0x82, 0x78, 0x56, 0x34, 0x12 };
		Assert.IsTrue (CompareData (memoryStream, target), "'NEG Word [EDX + EAX*4 + 0x12345678]' failed.");
	}
Esempio n. 12
0
	public void MUL_rmreg32 ()
	{
		// MUL ECX
		// MUL (R32.ECX)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.MUL (R32.ECX);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0xf7, 0xe1 };
		Assert.IsTrue (CompareData (memoryStream, target), "'MUL ECX' failed.");
	}
Esempio n. 13
0
	public void MUL_rmreg16 ()
	{
		// MUL SI
		// MUL (R16.SI)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.MUL (R16.SI);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x66, 0xf7, 0xe6 };
		Assert.IsTrue (CompareData (memoryStream, target), "'MUL SI' failed.");
	}
Esempio n. 14
0
	public void MUL_rmreg8 ()
	{
		// MUL AH
		// MUL (R8.AH)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.MUL (R8.AH);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0xf6, 0xe4 };
		Assert.IsTrue (CompareData (memoryStream, target), "'MUL AH' failed.");
	}
Esempio n. 15
0
	public void MUL_mem32 ()
	{
		// MUL DWord [FS:ESI + ESI*8]
		// MUL (new DWordMemory(Seg.FS, R32.ESI, R32.ESI, 3))
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.MUL (new DWordMemory (Seg.FS, R32.ESI, R32.ESI, 3));
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x64, 0xf7, 0x24, 0xf6 };
		Assert.IsTrue (CompareData (memoryStream, target), "'MUL DWord [FS:ESI + ESI*8]' failed.");
	}
Esempio n. 16
0
	public void NOT_rmreg8 ()
	{
		// NOT CL
		// NOT (R8.CL)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.NOT (R8.CL);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0xf6, 0xd1 };
		Assert.IsTrue (CompareData (memoryStream, target), "'NOT CL' failed.");
	}
Esempio n. 17
0
	public void NOT_rmreg16 ()
	{
		// NOT BX
		// NOT (R16.BX)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.NOT (R16.BX);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x66, 0xf7, 0xd3 };
		Assert.IsTrue (CompareData (memoryStream, target), "'NOT BX' failed.");
	}
Esempio n. 18
0
	public void NEG_rmreg16 ()
	{
		// NEG SP
		// NEG (R16.SP)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.NEG (R16.SP);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x66, 0xf7, 0xdc };
		Assert.IsTrue (CompareData (memoryStream, target), "'NEG SP' failed.");
	}
Esempio n. 19
0
	public void OR_mem8_reg8 ()
	{
		// OR [ES:ESI + EDX*1], CL
		// OR (new ByteMemory(Seg.ES, R32.ESI, R32.EDX, 0), R8.CL)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.OR (new ByteMemory (Seg.ES, R32.ESI, R32.EDX, 0), R8.CL);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x26, 0x8, 0xc, 0x16 };
		Assert.IsTrue (CompareData (memoryStream, target), "'OR [ES:ESI + EDX*1], CL' failed.");
	}
Esempio n. 20
0
	public void BSF_reg16_mem16 ()
	{
		// BSF SI, [ESI + 0x12345678]
		// BSF (R16.SI, new WordMemory(null, R32.ESI, null, 0, 0x12345678))
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.BSF (R16.SI, new WordMemory (null, R32.ESI, null, 0, 0x12345678));
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x66, 0xf, 0xbc, 0xb6, 0x78, 0x56, 0x34, 0x12 };
		Assert.IsTrue (CompareData (memoryStream, target), "'BSF SI, [ESI + 0x12345678]' failed.");
	}
Esempio n. 21
0
	public void BSF_reg32_mem32 ()
	{
		// BSF ESI, [ES:0x12345678]
		// BSF (R32.ESI, new DWordMemory(Seg.ES, null, null, 0, 0x12345678))
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.BSF (R32.ESI, new DWordMemory (Seg.ES, null, null, 0, 0x12345678));
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x26, 0xf, 0xbc, 0x35, 0x78, 0x56, 0x34, 0x12 };
		Assert.IsTrue (CompareData (memoryStream, target), "'BSF ESI, [ES:0x12345678]' failed.");
	}
Esempio n. 22
0
	public void NEG_rmreg32 ()
	{
		// NEG ESI
		// NEG (R32.ESI)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.NEG (R32.ESI);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0xf7, 0xde };
		Assert.IsTrue (CompareData (memoryStream, target), "'NEG ESI' failed.");
	}
Esempio n. 23
0
	public void OR_reg8_mem8 ()
	{
		// OR AL, [GS:0x12345678]
		// OR (R8.AL, new ByteMemory(Seg.GS, null, null, 0, 0x12345678))
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.OR (R8.AL, new ByteMemory (Seg.GS, null, null, 0, 0x12345678));
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x65, 0xa, 0x5, 0x78, 0x56, 0x34, 0x12 };
		Assert.IsTrue (CompareData (memoryStream, target), "'OR AL, [GS:0x12345678]' failed.");
	}
Esempio n. 24
0
	public void NOP ()
	{
		// NOP
		// NOP ()
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.NOP ();
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x90 };
		Assert.IsTrue (CompareData (memoryStream, target), "'NOP' failed.");
	}
Esempio n. 25
0
	public void OR_reg32_mem32 ()
	{
		// OR EBX, [0x12345678]
		// OR (R32.EBX, new DWordMemory(null, null, null, 0, 0x12345678))
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.OR (R32.EBX, new DWordMemory (null, null, null, 0, 0x12345678));
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0xb, 0x1d, 0x78, 0x56, 0x34, 0x12 };
		Assert.IsTrue (CompareData (memoryStream, target), "'OR EBX, [0x12345678]' failed.");
	}
Esempio n. 26
0
	public void NOT_mem8 ()
	{
		// NOT Byte [ESP + EBP*8]
		// NOT (new ByteMemory(null, R32.ESP, R32.EBP, 3))
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.NOT (new ByteMemory (null, R32.ESP, R32.EBP, 3));
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0xf6, 0x14, 0xec };
		Assert.IsTrue (CompareData (memoryStream, target), "'NOT Byte [ESP + EBP*8]' failed.");
	}
Esempio n. 27
0
	public void OR_mem16_imm16 ()
	{
		// OR Word [CS:0x12345678], 0xe6a
		// OR (new WordMemory(Seg.CS, null, null, 0, 0x12345678), 0xe6a)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.OR (new WordMemory (Seg.CS, null, null, 0, 0x12345678), 0xe6a);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x2e, 0x66, 0x81, 0xd, 0x78, 0x56, 0x34, 0x12, 0x6a, 0xe };
		Assert.IsTrue (CompareData (memoryStream, target), "'OR Word [CS:0x12345678], 0xe6a' failed.");
	}
Esempio n. 28
0
	public void NOT_mem16 ()
	{
		// NOT Word [DS:EDX*4]
		// NOT (new WordMemory(Seg.DS, null, R32.EDX, 2))
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.NOT (new WordMemory (Seg.DS, null, R32.EDX, 2));
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x3e, 0x66, 0xf7, 0x14, 0x95, 0x0, 0x0, 0x0, 0x0 };
		Assert.IsTrue (CompareData (memoryStream, target), "'NOT Word [DS:EDX*4]' failed.");
	}
Esempio n. 29
0
	public void OR_mem16_imm8 ()
	{
		// OR Word [EBX + EDI*2], 0x5
		// OR (new WordMemory(null, R32.EBX, R32.EDI, 1), 0x5)
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.OR (new WordMemory (null, R32.EBX, R32.EDI, 1), 0x5);
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x66, 0x83, 0xc, 0x7b, 0x5 };
		Assert.IsTrue (CompareData (memoryStream, target), "'OR Word [EBX + EDI*2], 0x5' failed.");
	}
Esempio n. 30
0
	public void NOT_mem32 ()
	{
		// NOT DWord [FS:EDI*1]
		// NOT (new DWordMemory(Seg.FS, null, R32.EDI, 0))
		MemoryStream memoryStream = new MemoryStream ();
		Assembly asm = new Assembly ();
		asm.NOT (new DWordMemory (Seg.FS, null, R32.EDI, 0));
		asm.Encode (memoryStream);
		byte [] target = new byte [] { 0x64, 0xf7, 0x17 };
		Assert.IsTrue (CompareData (memoryStream, target), "'NOT DWord [FS:EDI*1]' failed.");
	}