如何用汇编语言调用QueryPerformanceFrequency和QueryPerformanceCounter
时间: 2023-05-12 10:04:57 浏览: 120
可以使用以下汇编代码来调用QueryPerformanceFrequency和QueryPerformanceCounter函数:
```
; 定义函数原型
extern QueryPerformanceFrequency : PROC
extern QueryPerformanceCounter : PROC
; 定义变量
freq LARGE_INTEGER <>
count1 LARGE_INTEGER <>
count2 LARGE_INTEGER <>
; 调用QueryPerformanceFrequency函数
invoke QueryPerformanceFrequency, ADDR freq
; 调用QueryPerformanceCounter函数
invoke QueryPerformanceCounter, ADDR count1
; 在这里执行需要计时的代码
; 再次调用QueryPerformanceCounter函数
invoke QueryPerformanceCounter, ADDR count2
; 计算时间差
mov eax, count2.LowPart
sub eax, count1.LowPart
mov edx, count2.HighPart
sbb edx, count1.HighPart
imul edx, 1000000
mov ecx, freq.LowPart
div ecx
; eax 中存储的就是执行代码所需的时间,单位为微秒
```
这段代码使用了MASM语法,需要在代码前面加上`.model flat, stdcall`来指定模型和调用约定。
阅读全文