37 lines
439 B
NASM
37 lines
439 B
NASM
|
; x86 timer in NASM
|
||
|
;
|
||
|
; Tom St Denis, tomstdenis@iahu.ca
|
||
|
[bits 32]
|
||
|
[section .data]
|
||
|
time dd 0, 0
|
||
|
|
||
|
[section .text]
|
||
|
|
||
|
%ifdef USE_ELF
|
||
|
[global t_start]
|
||
|
t_start:
|
||
|
%else
|
||
|
[global _t_start]
|
||
|
_t_start:
|
||
|
%endif
|
||
|
push edx
|
||
|
push eax
|
||
|
rdtsc
|
||
|
mov [time+0],edx
|
||
|
mov [time+4],eax
|
||
|
pop eax
|
||
|
pop edx
|
||
|
ret
|
||
|
|
||
|
%ifdef USE_ELF
|
||
|
[global t_read]
|
||
|
t_read:
|
||
|
%else
|
||
|
[global _t_read]
|
||
|
_t_read:
|
||
|
%endif
|
||
|
rdtsc
|
||
|
sub eax,[time+4]
|
||
|
sbb edx,[time+0]
|
||
|
ret
|
||
|
|