//----------------------------------------------------------------- // showtsc.s // // programmer: ALLAN CRUSE // written on: 27 APR 2009 //----------------------------------------------------------------- .equ dev_STDOUT, 1 .equ sys_WRITE, 1 .equ sys_EXIT, 60 .section .data tscval: .quad 0 tscmsg: .ascii "\n TimeStamp Counter: " tscbuf: .ascii " \n\n" tsclen: .quad . - tscmsg .section .text _start: # read the TimeStamp Counter register rdtsc mov %eax, tscval+0 mov %edx, tscval+4 # format the register-value for output mov tscval, %rax lea tscbuf, %rdi mov $10, %rbx xor %rcx, %rcx nxdiv: xor %rdx, %rdx div %rbx push %rdx inc %rcx or %rax, %rax jnz nxdiv nxdgt: pop %rdx add $'0', %dl mov %dl, (%rdi) inc %rdi loop nxdgt # write the report-message mov $sys_WRITE, %rax mov $dev_STDOUT, %rdi lea tscmsg, %rsi mov tsclen, %rdx syscall # terminate this program mov $sys_EXIT, %rax xor %rdi, %rdi syscall .global _start .end