nuj*_*uju 5 x86 assembly clock
x86中断0x1A似乎给出了计算机的时钟时间,但它只能给出55ms内的准确时间(AH = 0).有没有办法获得比这更小的增量(也许更"正常"),比如1ms?我正在尝试制作自己的玩具操作系统,所以我不能使用任何我无法自己编写的东西.
Chr*_*ich 6
您可以使用rdtscx86上的(读取时间戳计数器)指令来获取64位CPU时间戳edx:eax.此指令的实现取决于您的处理器,但它要么每个时钟递增一次,要么以恒定速率递增.因此,时间分辨率也会有所不同,但应该优于1ms.
rdtsc
edx:eax
使用时有一些注意事项rdtsc:
由于您正在编写自己的操作系统,因此您可能不必担心其中的一些问题.
Igo*_*sky 3
由于您正在制作自己的操作系统,因此不必保留计时器周期。可以对 PIT 重新编程以更频繁地触发 INT 8 (IRQ 0)。看这里。
在较新的计算机上,您还可以使用高精度事件计时器。
归档时间:
13 年,9 月 前
查看次数:
396 次
最近记录: