timer.asm 475 B

12345678910111213141516171819202122232425262728293031323334353637
  1. ; x86 timer in NASM
  2. ;
  3. ; Tom St Denis, tomstdenis@iahu.ca
  4. [bits 32]
  5. [section .data]
  6. time dd 0, 0
  7. [section .text]
  8. %ifdef USE_ELF
  9. [global t_start]
  10. t_start:
  11. %else
  12. [global _t_start]
  13. _t_start:
  14. %endif
  15. push edx
  16. push eax
  17. rdtsc
  18. mov [time+0],edx
  19. mov [time+4],eax
  20. pop eax
  21. pop edx
  22. ret
  23. %ifdef USE_ELF
  24. [global t_read]
  25. t_read:
  26. %else
  27. [global _t_read]
  28. _t_read:
  29. %endif
  30. rdtsc
  31. sub eax,[time+4]
  32. sbb edx,[time+0]
  33. ret