如何獲知當前系統是否支援CPUID指令

2021-04-22 11:03:49 字數 941 閱讀 2455

rel="file-list" href="file:///c:/docume%7e1/micros%7e1/locals%7e1/temp/msoclip1/03/clip_filelist.xml">cpuid

指令是乙個非常有用的指令,通過它能夠獲知相關

cpu的具體規格,比如是否支援

mmx/sse/sse2/sse3/ssse3/sse4.1/sse4.2

指令,i/dcache

的大小,廠商等資訊。因為一些老的

cpu不支援它,為了程式有更好的相容性,所以在使用之前最好要檢查一下當前系統是否支援它。

那麼如何檢測呢?

很簡單,

eflags

暫存器的第

21位用於指示是否

cpuid

能夠被使用。如果軟體能夠對它進行設定或者清除,那麼當前系統是可利用的。為了給大家清楚的說明這點,我這裡給出了乙個例子(因為水平有限,請大家將就一些啦j)。

int cpuid_issupported( void )

return supported; }

對eflags

暫存器我們不能夠直接訪問,所以通過

pushfd/popfd

來完成相應的修改動作。程式的基本思路是先將

eflags

存放在eax/ebx

中,在修改它的第

21位後通過

popfd

來完成更新工作。在此之後,通過再次獲取它的當前值(存放在

eax中)與修改前之值(存放在

ebx中)進行比較,若發現一致,則表面當前系統不支援

cpuid

指令,反之亦然。

小結:1.

程式中的

push ebx

和popfd

2. 沒有對它進行什麼優化,程式可能存在邋遢部分。如果哪位網友能夠幫助優化,我將深表謝意。

如何檢查系統是否支援Zend Optimizer

zend optimizer 主要有兩個功能 1 可以加速 php 指令碼的執行 2 可以給用 zend 加密的檔案解密。所以,一般來說,如果 php 指令碼沒有經過加密,可以不必安裝 zend optimizer 目前我們的產品中包含加密檔案的產品有 supesite supev ucenter ...

如何檢視自己的電腦 CPU 是否支援硬體虛擬化

在你安裝各種虛擬機器之前,應該先測試一下自己的電腦 cpu 是否支援硬體虛擬化。如果你的電腦比較老舊,可能不支援硬體虛擬化,那麼將無法安裝虛擬機器軟體。使用 securable.exe 工具來檢視自己的電 腦cpu 是否支援硬體虛擬化。這是最簡單的一種方法,可以很直觀的看出電腦 cpu 是否支援虛擬...

linux系統中如何通過程式來獲知系統資訊

linux系統中如何通過程式來獲知系統資訊 最近在做乙個專案,遇到要在程式中動態的獲取裝置硬體資訊。糾結了我很長時間,今天突然發現原來在linux中有api函式直接就可以實現。對於好東西,當然要和大家share下了。一.uname 函式 1.使用uname函式來實現 獲取系統資訊 1 函式原型 in...