public void FSTP_fpureg () { // FSTP ST0 // FSTP (FP.ST0) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.FSTP (FP.ST0); asm.Encode (memoryStream); byte [] target = new byte [] { 0xdd, 0xd8 }; Assert.IsTrue (CompareData (memoryStream, target), "'FSTP ST0' failed."); }
public void FSTP_mem64 () { // FSTP QWord [ES:ESP + EDX*2] // FSTP (new QWordMemory(Seg.ES, R32.ESP, R32.EDX, 1)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.FSTP (new QWordMemory (Seg.ES, R32.ESP, R32.EDX, 1)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x26, 0xdd, 0x1c, 0x54 }; Assert.IsTrue (CompareData (memoryStream, target), "'FSTP QWord [ES:ESP + EDX*2]' failed."); }
public void FSTP_mem80 () { // FSTP TWord [EBX + 0x12345678] // FSTP (new TWordMemory(null, R32.EBX, null, 0, 0x12345678)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.FSTP (new TWordMemory (null, R32.EBX, null, 0, 0x12345678)); asm.Encode (memoryStream); byte [] target = new byte [] { 0xdb, 0xbb, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'FSTP TWord [EBX + 0x12345678]' failed."); }
public void FSTP_mem32 () { // FSTP DWord [DS:ECX + 0x12345678] // FSTP (new DWordMemory(Seg.DS, R32.ECX, null, 0, 0x12345678)) MemoryStream memoryStream = new MemoryStream (); Assembly asm = new Assembly (); asm.FSTP (new DWordMemory (Seg.DS, R32.ECX, null, 0, 0x12345678)); asm.Encode (memoryStream); byte [] target = new byte [] { 0x3e, 0xd9, 0x99, 0x78, 0x56, 0x34, 0x12 }; Assert.IsTrue (CompareData (memoryStream, target), "'FSTP DWord [DS:ECX + 0x12345678]' failed."); }