DOS下和WINDOWS下用CPUID读CPU信息

一 :WINDOWS下,用VC++来编译。

         格式:   unsigned long DBase;
char cA[13];
char cB[49];
_asm
  {
    xor eax, eax
    cpuid
    mov DBase      ,eax
    mov dword ptr cA    ,ebx
    mov dword ptr cA+4  ,edx 
    mov dword ptr cA+8  ,ecx 

    mov eax, 0x80000002
    cpuid
    mov dword ptr cB    , eax
    mov dword ptr cB + 4  , ebx
    mov dword ptr cB + 8  , ecx
    mov dword ptr cB + 12  ,edx

    mov eax, 0x80000003
    cpuid
    mov dword ptr cB + 16  , eax
    mov dword ptr cB + 20  , ebx
    mov dword ptr cB + 24  , ecx
    mov dword ptr cB + 28  , edx

    mov eax, 0x80000004
    cpuid
    mov dword ptr cB + 32  , eax
    mov dword ptr cB + 36  , ebx
    mov dword ptr cB + 40  , ecx
    mov dword ptr cB + 44  , edx
  }

二:DOS下,需要用DJGPP来编译(支持32位)。

          格式:

#define CPUID(op,a,b,c,d) 
__asm__ __volatile__("cpuid":"=a"(a),"=b"(b),"=c"(c),"=d"(d):"a"(op))

 

 MSN:   twinliwu@hotmail.com

        

时间: 2024-09-23 19:09:11

DOS下和WINDOWS下用CPUID读CPU信息的相关文章

求助!用c#怎么样实现获取windows下未安装补丁的信息和windows的屏保信息和屏保时间啊

问题描述 求助!用c#怎么样实现获取windows下未安装补丁的信息和windows的屏保和屏保时间啊[b][/b]这是毕业设计里面的一项内容,不知道怎么做,有同学说只能用c来做,然后调用,但是调用不好用,来论坛求助以下大侠们,看有没人会用c#,vs2010完成这些 解决方案 解决方案二:现在屏保和屏保时间都已经查出来了,就剩实现获取windows下未安装补丁的信息了,来个大神救济啊解决方案三:获取更新信息的话可以使用windowsupdate相关的API,baidu一下满大街都应该是.我记得c

在Linux下和Windows下遍历目录的方法及如何达成一致性操作

最近因为测试目的需要遍历一个目录下面的所有文件进行操作,主要是读每个文件的内容,只要知道文件名就OK了.在Java中直接用File类就可以搞定,因为Java中使用了组合模式,使得客户端对单个文件和文件夹的使用具有一致性,非常方便.但在C中就不一样了,而且在不同的平台下使用方法也不同.在Linux下实现该功能就非常方便,因为自带有API库,几个函数用起来得心应手(虽然有些小问题,后面说),在Windows下实现就不是那么方便,虽然也有自己的API,但用法有些晦涩难懂,因为没有封装起来,需要自己一步

Linux下和Windows下创建Oracle数据库,表空间,Oracle用户

通过SSH工具或是XShell工具进入远程Linux下. 其中,通过SSH工具登录的界面如下: 其中Host Name是远程服务器的ip地址.User Name是服务器的一个用户名,端口号默认22,Connect进去后可以填写服务器的密码. 通过XShell工具登录的界面如下: 点击上面的New按钮,填写HOST主机地址,即服务器的IP地址,点击OK即可.   输入命令:    cd /    到根目录下 启动tomcat usr/local/tomcat/bin/startup.sh(这是to

dos下通过wmic命令查看硬盘和内存/CPU信息(windows自带命令查看硬件信息)_DOS/BAT

如何在windows系统自带命令查看硬件信息,怎样dos命令查看硬盘和内存/CPU信息?最直接的是:开始→运行→CMD打开命令提示符,在该窗口下输入systeminfo执行,即可看到几乎所有想知道的系统信息,甚至包括机器上已安装的网卡及其IP. 问题描述: 如何从系统中 查看主板上内存条的数量.最佳答案: 在cmd命令下 输入:wmic memorychip list brief 或者 wmic MEMPHYSICAL list brief 就会看到内存条的数量 rem 查看cpu wmic c

关于DOS(windows)下取得系统日期的方法:用于自动数据库备份等

window|备份|数据|数据库 前2天碰到一个客户的Oracle在SCO下的自动备份EXP Script出现问题,无法正常执行,如果重新安装Oracle需要准备.但是备份也不能耽搁,要不然数据库丢了可是麻烦.于是想在Windows的客户端写个自动备份的Script 实现定时的自动备份.可是在Windows下去到的系统时间就是有"2004-11-25 星期四"这样的格式作为文件名可是不行啊.于是去Internet 找了一把,没有结果,只好作罢,给个固定的文件名临时使用. 过来2天我还是

麻烦大神帮我看看 串口发送的数据在windows下和ubuntu下显示不一致

问题描述 麻烦大神帮我看看 串口发送的数据在windows下和ubuntu下显示不一致 windows 下是这样子的 ubuntu下用minicom.cap接收后显示是这样子的 这是我的minicom的配置 这是我的串口信息 跪求大神帮我看看 解决方案 结果是一样的!windows下打印出来的是ASCII码值,Ubuntu下面打印出来的是ASCII码值对应的字符,0x7A对应字符z 0x3C对应字符< 解决方案二: 理论上说 这两个应该是一致的为什么出现了不同的结果

windows下线程在cpu中运行情况

问题描述 windows下线程在cpu中运行情况 windows下用户级线程不是资源分配的单位,那么在执行的过程中对于4核的CPU,操作系统会将一个进程下的四个线程分别分配给四个核么以使得它们同时运行,提高效率? 解决方案 会,四个线程分别分配给四个核么以使得它们同时运行,提高效率 解决方案二: 多核CPU就是为了提高并发,可能4个线程泡在4,3,2,1个CPU都有可能

socket在windows下和linux下的区别

原文:socket在windows下和linux下的区别 1)头文件 windows下winsock.h/winsock2.h linux下sys/socket.h    错误处理:errno.h  2)初始化 windows下需要用WSAStartup WSADATA wsaData;         err = WSAStartup(0x202,&wsaData); if ( err != 0 ) { return 0; } else if ( LOBYTE( wsaData.wVersio

Windows下进程占用CPU过大的解决方案

Windows下进程占用CPU过大 1.WMI Provider Host(wmiprvse.exe)占用CPU高         & &         >