public void FSUB_mem64 () { // FSUB QWord [EDX*2 + 0x12345678] // FSUB (new QWordMemory(null, null, R32.EDX, 1, 0x12345678)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.FSUB (new QWordMemory (null, null, R32.EDX, 1, 0x12345678)); asm.Encode (memoryStream); byte [] target = new byte [] { 0xdc, 0xa4, 0x12, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'FSUB QWord [EDX*2 + 0x12345678]' failed."); }
public void FSUB_fpureg () { // FSUB ST6 // FSUB (FP.ST6) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.FSUB (FP.ST6); asm.Encode (memoryStream); byte [] target = new byte [] { 0xd8, 0xe6 }; Assert.IsTrue (CompareData (memoryStream, target), "'FSUB ST6' failed."); }
public void FSUB_mem32 () { // FSUB DWord [CS:0x12345678] // FSUB (new DWordMemory(Seg.CS, null, null, 0, 0x12345678)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.FSUB (new DWordMemory (Seg.CS, null, null, 0, 0x12345678)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x2e, 0xd8, 0x25, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'FSUB DWord [CS:0x12345678]' failed."); }