Interact with local variables in asm block

confuzzled con at fuzzled.com
Fri Jul 4 16:06:07 UTC 2025


Good day all,

What is the proper way to assign to accomplish this?

ulong rdtsc() {
     ulong result;
     uint* res = cast(uint*) &result;
     asm {
         rdtsc;  // Puts result in edx:eax

         // Cast our ulong's address to a 32-bit integer pointer
         // and move the register values into the correct memory locations.
         mov EAX, res[0]; // Low 32 bits
         mov EDX, res[1]; // High 32 bits
     }
     return result;
}

With this implementation, the value returned is always 0.00.

I would appreciate any help I can get.

Thanks,
-- confuzzled


More information about the Digitalmars-d-learn mailing list