37 lines
		
	
	
		
			475 B
		
	
	
	
		
			NASM
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			475 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
 | 
						|
    |