如何在汇编中获取以毫秒为单位的时间?
How to get time in milliseconds in assembly?
我可以秒取,但是毫秒的值怎么取呢?
我正在尝试使用 gettimeofday 系统调用:
sys_gettimeofday_ms:
enter [=10=], [=10=]
pushq [=10=]
pushq
leaq -16(%rbp), %rdi
mov , %rax
syscall
movq -16(%rbp), %rax
leave
ret
这可能有效(未经测试),针对 x86_64 Linux。
sys_gettimeofday_ms:
mov rax, 96
lea rdi, [rsp - 16]
xor esi, esi
syscall
mov ecx, 1000
mov rax, [rdi + 8]
xor edx, edx
div rcx
mov rdx, [rdi]
imul rdx, rcx
add rax, rdx
ret
我可以秒取,但是毫秒的值怎么取呢? 我正在尝试使用 gettimeofday 系统调用:
sys_gettimeofday_ms:
enter [=10=], [=10=]
pushq [=10=]
pushq
leaq -16(%rbp), %rdi
mov , %rax
syscall
movq -16(%rbp), %rax
leave
ret
这可能有效(未经测试),针对 x86_64 Linux。
sys_gettimeofday_ms:
mov rax, 96
lea rdi, [rsp - 16]
xor esi, esi
syscall
mov ecx, 1000
mov rax, [rdi + 8]
xor edx, edx
div rcx
mov rdx, [rdi]
imul rdx, rcx
add rax, rdx
ret