x86.asm
上传用户:wstnjxml
上传日期:2014-04-03
资源大小:7248k
文件大小:2k
源码类别:

Windows CE

开发平台:

C/C++

  1. ;*****************************************************************************
  2. ;*
  3. ;* This program is free software ; you can redistribute it and/or modify
  4. ;* it under the terms of the GNU General Public License as published by
  5. ;* the Free Software Foundation; either version 2 of the License, or
  6. ;* (at your option) any later version.
  7. ;*
  8. ;* This program is distributed in the hope that it will be useful,
  9. ;* but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. ;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. ;* GNU General Public License for more details.
  12. ;*
  13. ;* You should have received a copy of the GNU General Public License
  14. ;* along with this program; if not, write to the Free Software
  15. ;* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  16. ;*
  17. ;* $Id: x86.asm 271 2005-08-09 08:31:35Z picard $
  18. ;*
  19. ;* The Core Pocket Media Player
  20. ;* Copyright (c) 2004-2005 Gabor Kovacs
  21. ;*
  22. ;*****************************************************************************
  23. BITS 32
  24. SECTION .text
  25. %macro cglobal 2
  26. %define %1 _%1@%2
  27. global %1
  28. %endmacro
  29. cglobal GetCpuId,8
  30. cglobal CPUSpeedClk,4
  31. ALIGN 16
  32. GetCpuId:
  33. pushfd
  34. pop     eax
  35. mov     edx,eax
  36. xor     eax,00200000h
  37. push    eax
  38. popfd
  39. pushfd
  40. pop     eax
  41. cmp     eax,edx
  42. mov eax,0
  43. jz      .NoCpuId
  44. push    ebx
  45. push    esi
  46. mov eax,[esp+12]
  47. mov esi,[esp+16]
  48. cpuid   
  49. mov [esi],eax
  50. mov [esi+4],ebx
  51. mov [esi+8],ecx
  52. mov [esi+12],edx
  53. pop     esi
  54. pop     ebx
  55. .NoCpuId:
  56. ret 8
  57. CPUSpeedClk:
  58. push ebx
  59. mov ebx,esp
  60. mov edx,[esp+8]
  61. imul eax,edx,1000+3
  62. .CPULoop:
  63. %rep 1000
  64. add ecx,[ebx]
  65. %endrep
  66. sub edx,1
  67. jg .CPULoop
  68. xor edx,edx
  69. pop ebx
  70. ret 4