Chinaunix首页 | 论坛 | 博客
  • 博客访问: 128861
  • 博文数量: 70
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 18:53
文章分类
文章存档

2015年(8)

2014年(14)

2011年(1)

2010年(21)

2009年(26)

我的朋友

分类: LINUX

2009-11-24 19:04:13

#include      
 
int   main(int   argc,   char*   argv[])  
  {  
        unsigned   long   s1,s2,s3,s4;  
        char   sel;  
        printf("Select   the   function:\n1-------Read   CPU   id.\n2-------Disable   CPU   id.\n");  
        sel=getchar();  
        switch(sel)  
        {  
        case   '1':   
                 asm volatile   
                 ( "movl $0x01 , %%eax ; \n\t"
                   "xorl %%edx , %%edx ;\n\t"
                   "cpuid ;\n\t"
                   "movl %%edx ,%0 ;\n\t"
                   "movl %%eax ,%1 ; \n\t"
                   :"=m"(s1),"=m"(s2)
                  );  
    
                printf("%08X-%08X-",s1,s2);
  
               asm volatile   
               ("movl $0x03,%%eax ;\n\t"
                "xorl %%ecx,%%ecx ;\n\t"
                "xorl %%edx,%%edx ;\n\t"
                "cpuid ;\n\t"
                "movl %%edx,%0 ;\n\t"
                "movl %%ecx,%1 ;\n\t"
                :"=m"(s3),"=m"(s4)
               );   
               printf("%08X-%08X \n",s3,s4);   
               break;
   
     case   '2':   
                asm volatile
               ("mov $0x119,%ecx \n\t"
                "rdmsr \n\t"
                "or $0x00200000,%eax \n\t"
                 "wrmsr \n\t" 
                );  
              printf("CPU   id   is   disabled.\n");  
              break;   
     }  
        return   0;  
  }  
 
 
阅读(1322) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:网络模型(一)

给主人留下些什么吧!~~