public void SHLD_rmreg32_reg32_CL () { // SHLD EDI, EDI, CL // SHLD___CL (R32.EDI, R32.EDI) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.SHLD___CL (R32.EDI, R32.EDI); asm.Encode (memoryStream); byte [] target = new byte [] { 0xf, 0xa5, 0xff }; Assert.IsTrue (CompareData (memoryStream, target), "'SHLD EDI, EDI, CL' failed."); }
public void SHLD_mem32_reg32_CL () { // SHLD [FS:0x12345678], EDI, CL // SHLD___CL (new DWordMemory(Seg.FS, null, null, 0, 0x12345678), R32.EDI) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.SHLD___CL (new DWordMemory (Seg.FS, null, null, 0, 0x12345678), R32.EDI); asm.Encode (memoryStream); byte [] target = new byte [] { 0x64, 0xf, 0xa5, 0x3d, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'SHLD [FS:0x12345678], EDI, CL' failed."); }
public void SHLD_rmreg16_reg16_CL () { // SHLD SP, CX, CL // SHLD___CL (R16.SP, R16.CX) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.SHLD___CL (R16.SP, R16.CX); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0xf, 0xa5, 0xcc }; Assert.IsTrue (CompareData (memoryStream, target), "'SHLD SP, CX, CL' failed."); }
public void SHLD_mem16_reg16_CL () { // SHLD [EBX + EDI*4 + 0x12345678], SP, CL // SHLD___CL (new WordMemory(null, R32.EBX, R32.EDI, 2, 0x12345678), R16.SP) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.SHLD___CL (new WordMemory (null, R32.EBX, R32.EDI, 2, 0x12345678), R16.SP); asm.Encode (memoryStream); byte [] target = new byte [] { 0x66, 0xf, 0xa5, 0xa4, 0xbb, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'SHLD [EBX + EDI*4 + 0x12345678], SP, CL' failed."); }