38 lines
		
	
	
		
			474 B
		
	
	
	
		
			NASM
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			474 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
 | |
| 
 | 
