当前位置:首页 > 我的杂物 > 正文内容

CPUID这个汇编指令到底有什么用。先谈谈01子功能。

Peirre4年前 (2021-05-11)我的杂物676

最近在翻览intel公司的CPU开发白皮书,对CPUID这个指令做了一下了解。

CPUID这个指令就像一个功能函数一样,只要CPU的寄存器EAX有数据,它会在执行CPUID指令后返回到EAX,EBX,ECX,EDX不同的值。

原文可能没学过英文的人看不太懂。

我现在会陆续把功能号反映出来。

现在贴一个当CPU寄存器EAX值是1时CPUID这个指令返回的结果。

; EAX=01H 返回
; EAX CPU 版本类型,家族,模式,单步ID
; EBX 0-7   字节,索引
;     8-15  字节,CLFUSH 行尺寸(值 8 = 1字节缓存行尺寸)
;     16-23 字节,物理包内的逻辑处理地址ID的最大数
;     24-31 字节,初始化APIC ID
; ECX  SSE3 SSE3扩展功能
;	   PCLMULQDQ 多比较
;      DTES64  64位DS区域
;      MONITOR 支持MONITOR/MWAIT
;      DS-CPL  CPL 调试记录
;      VMX   虚拟机扩展
;      SMX   保护模式扩展
;      EST   加强型Intel SeedStep 技术
;      TM2   终端监控2
;      SSSE3 SSSE3扩展
;      CNXT-ID L1目录ID
;      SDBG  调试
;      FMA  多存地址
;      CMPXCHG16B 
;      xTPR 升级控制
;      [第16位保留]
;      PDCM Perf/调试MSR
;      PCID 处理器定义
;      DCA  cache 目录访问
;      SSE4_1
;      SSE4_2
;      x2APIC
;      MOVBE
;      POPCNT
;      TSC-Deadline 支持 APIC计时器在TSC deadline值上的 one-shot 操作
;      AES AESIN 扩展指令
;      XSAVE 支持 XSAVE/XRSTOR 外部处理指令 XSETBV/XGETBV和XCR0指令
;      OSXSAVE 支持CR4.0SXSAVE[bit 8]开启 用XSETBV/XGETBV访问XCR0管理XSAVE/XRSTOR
;      AVX
;      F16C
;      RDRAND
;      val = 0
; EDX  FPU-x87 FPU浮点运算器
;      VME     加强虚8086模式 包含CR4.VME控制特性,CR4.PVI为TSS保护模式虚拟中断,软中断除外,软件图片和EFLAGS.VIF,EFLAGS.VIP标志
;      DE      调试扩展 CR4.DE 控制I/O断点,选择访问DR4和DR5
;      PSE     页面扩展 大页面4M支持,包含CR4.PSE控制特性 选择保留CR3,PDEs,PTEs
;      TSC     时间计数 RDTSC 指令支持 包含CR4.TSD私有控制
;      MSP     RDMSR 和 WRMSR支持
;      PAE     物理地址扩展 32位 2M扩展4M
;      MCE     机器异常检查
;      CX8     CMPXCHG8B
;      APIC    APIC芯片 处理器的高级中断控制,物理地址环FFFE0000h到FFFE0FFFh
;      [第10位保留]
;      SEP     SYSENTER/SYSEXIT
;      MTRR    内存环寄存器组
;      PGE     PTE全局位 和 TLB有关
;      MCA     机器ARC检查  MCG_CAP特性
;      CMOV    移动比较指令 CPUID.FPU支持 FCOMI/FCMOV支持
;      PAT     页面属性表 和 MTRRs有关
;      PSE-36  页面尺寸扩展 4M页面地址,物理内存4G以上 13-20位页面目录进入,可以升到 40位
;      PSN     处理器序列数
;      CLFSH   CLFSH指令 CLFLUSH指令
;      [第20位保留]
;      DS      调试记录 和 BTS PEBS有关
;      ACPI    终端监示和时钟控制
;      MMX     MMX技术
;      FXSR    FXSAVE/FXRSTOR
;      SSE     SSE扩展
;      SSE2    
;      SS      Self Snoop
;      HTT     多线程
;      TM      终端监示
;      [第30位保留]
;      PBE     Pend. Brk.EN 使用FERR#/PBE#在STPCLK#内  IA32_MISC_ENABLE MSR开启

以上是汇编语言的注释,当EAX等于1时的注释,ECX和EDX返回的是一个数,展开成32位,然后每一位就表示一个功能。

这些功能都是CPU的扩展功能。



分享给朋友:

相关文章

几天前国际空间站登录动态图片。

几天前国际空间站登录动态图片。

登录国际空间站图片:想看更清楚动画,下载:链接: https://pan.baidu.com/s/1cAorfhxr7IPBCAGdDlfq_Q 密码: j6zb...

为武汉加油

为武汉加油

过年了之后就是过元宵。近两日突然发生流行性冠状病毒肺炎。在非典时期末,曾经有人发现过这种病毒,当时中央电视台正大综艺的节目叫《万国剪影》,在欧美那个村发现蝙蝠的免疫体是可以繁殖的。一时间后几期综艺节目...

OBS 插件开发所需要的数据结构。

插件的四个入口:plugins_sourcesplugins_outputsplugins_encodersplugins_servicesOBS软件的三个主线程函数:obs_graphics_thr...

来个游戏的玩法吧。

来个游戏的玩法吧。

早期的DOS游戏复杂度大一点的,比如说大航海时代2。又好玩又免费,如果加上一个地球仪就很有意思了。这个游戏有很多数值,地图数据和世界地图一样,不过细节上不一样。玩这个游戏可以学到很多地理知识。乐趣也很...

linux mint 下的网桥设置,附window 10 网桥的建立。

linux mint 下的网桥设置,附window 10 网桥的建立。

家有板载双网卡的电脑一台,一直以来都是正常使用。接一个网线,直接通过路由上网。另外一个网卡不知道怎么使用一直是备用状态。今天大年初一,心情比较轻松。于是试了一下另外的一个网卡。我的迷你电脑有两个端口,...