Hi Guys,
I am currently playing around with MASM and am currently stumped on how to implement my frame rate counter.
The problem is caused by QueryPerformanceCounter returning a LONG INTEGER which is 64 bits in length. So I am struggling to work out how to calculate a few things.
This is what I have ported over so far from my C/C++ code.
invoke QueryPerformanceFrequency, addr TimeFrequency
invoke QueryPerformanceCounter, addr TimeEnd
;TimeElapsed.QuadPart = TimeEnd.QuadPart - TimeStart.QuadPart;
mov eax,DWORD PTR TimeEnd[0]
sub eax,DWORD PTR TimeStart[0]
mov ecx,DWORD PTR TimeEnd[+4]
sbb ecx,DWORD PTR TimeStart[+4]
mov DWORD PTR TimeElapsed[0], eax
mov DWORD PTR TimeElapsed[+4], ecx // I think this is correct up to here
;TimeElapsed.QuadPart *= 1000000000; // **** Not sure what to do here
;TimeElapsed.QuadPart /= TimeFrequency.QuadPart; // **** Not sure what to do here
inc nCounter
;if (TimeElapsed.QuadPart > 1000000000) // *** Not sure what to do here
.if 1 ; placeholder
invoke itoa, nCounter, addr szBuffer, 10
invoke SetWindowText, hWnd, addr szBuffer
mov nCounter, 0
invoke QueryPerformanceFrequency, addr TimeFrequency
invoke QueryPerformanceCounter, addr TimeStart
.endif
Any help would be absolutely awesome!
Thanks in advance