如何获取NASM程序的运行时间?
这是我想要的程序的运行时间。这是一个简单的程序来计算斐波那契序列使用NASM汇编,所以,我需要得到这个程序的运行时间来比较速度与我的其他算法:
;fib.asm
global main
extern printf
section .text
main:
push rbx
mov ecx, 90
xor rax, rax
xor rbx, rbx
inc rbx
print:
push rax
push rcx
mov rdi, format
mov rsi, rax
xor rax, rax
call printf
pop rcx
pop rax
mov rdx, rax
mov rax, rbx
add rbx, rdx
dec ecx
jnz print
pop rbx
ret
format:
db "%20ld", 10, 0
是否有任何特殊的系统调用。我尝试了谷歌搜索和其他各种方法,但没有一个对我有用。
1条答案
按热度按时间xwmevbvl1#
如果你问的是程序运行的时间,而不是一些运行时的帮助函数库,如printf,那么方法就是使用任何其他程序都可以用来测量其CPU使用率的相同系统调用。在Microsoft Win64上,这是GetProcessTime()API,它接受以下64位参数,请记住首先推送最后一个参数,并将前4个参数传递到寄存器中。以下代码片段直接在此答案中编写,根本未进行测试