; 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 | |