Cosmos/source/Cosmos.Core_Asm/CPUInformationPlugs/GetCurrentTimeStampCounter.cs
Valentin Charbonnier 2c28dff298 First CPU Impl.
2018-03-26 21:20:51 +02:00

19 lines
691 B
C#

using XSharp;
using XSharp.Assembler;
namespace Cosmos.Core_Asm.CPUInformationPlugs
{
class GetCurrentTimeStampCounter : AssemblerMethod
{
public override void AssembleNew(Assembler aAssembler, object aMethodInfo)
{
XS.Rdtsc();
//Get the edx pointer
XS.Set(XSRegisters.EBX, XSRegisters.EBP, sourceDisplacement: 8);
//Store the value on the variable edx
XS.Set(XSRegisters.EBX, XSRegisters.EDX, destinationIsIndirect: true);
XS.Set(XSRegisters.EBX, XSRegisters.EBP, sourceDisplacement: 12);
XS.Set(XSRegisters.EBX, XSRegisters.EAX, destinationIsIndirect: true);
}
}
}