成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++ cpuid指令正確理解

開發(fā) 后端
C++ cpuid指令到底是個(gè)什么樣的指令呢?它的具體使用方法優(yōu)勢(shì)如何的呢?下面就讓我們一起來看看這里介紹的內(nèi)容,相信能從中找到答案。

C++編程語言應(yīng)用范圍非常廣泛,其中有很多功能可以幫助我們實(shí)現(xiàn)一些特定的需求,并在一定程度上提高編程效率。在這里我們會(huì)為大家介紹一下有關(guān)C++ cpuid指令的一些應(yīng)用方法,方便大家理解。#t#

1、什么是C++ cpuid指令

CPUID指令是intel IA32架構(gòu)下獲得CPU信息的匯編指令,可以得到CPU類型,型號(hào),制造商信息,商標(biāo)信息,序列號(hào),緩存等一系列CPU相關(guān)的東西。

2、C++ cpuid指令的使用

cpuid使用eax作為輸入?yún)?shù),eax,ebx,ecx,edx作為輸出參數(shù),舉個(gè)例子:

 

  1. __asm  
  2. {  
  3. mov eax, 1  
  4. cpuid  
  5. ...  

 

以上代碼以1為輸入?yún)?shù),執(zhí)行cpuid后,所有寄存器的值都被返回值填充。針對(duì)不同的輸入?yún)?shù)eax的值,輸出參數(shù)的意義都不相同。為了更好的在C++中使用cpuid指令,可以使用類對(duì)指令進(jìn)行封裝,在類中定義一個(gè)專門的函數(shù)負(fù)責(zé)cpuid的執(zhí)行,他需要一個(gè)輸入?yún)?shù)。還需要定義四個(gè)成員變量存儲(chǔ)C++ cpuid指令執(zhí)行以后返回來的值。由于這四個(gè)寄存器都是32位長(zhǎng)的,可以使用unsinged long 類型變量存儲(chǔ)。

 

  1. typedef unsigned long DWORD  
  2. class CPUID  
  3. {  
  4. public:  
  5. ...  
  6. private:  
  7. void Executecpuid(DWORD eax); // 用來實(shí)現(xiàn)cpuid  
  8. DWORD m_eax; // 存儲(chǔ)返回的eax  
  9. DWORD m_ebx; // 存儲(chǔ)返回的ebx  
  10. DWORD m_ecx; // 存儲(chǔ)返回的ecx  
  11. DWORD m_edx; // 存儲(chǔ)返回的edx  
  12. ...  
  13. }  
  14. void CPUID::Executecpuid(DWORD veax)  
  15. {  
  16. // 因?yàn)榍度胧降膮R編代碼不能識(shí)別 類成員變量  
  17. // 所以定義四個(gè)臨時(shí)變量作為過渡  
  18. DWORD deax;  
  19. DWORD debx;  
  20. DWORD decx;  
  21. DWORD dedx;  
  22. __asm  
  23. {  
  24. mov eax, veax ;將輸入?yún)?shù)移入eax  
  25. cpuid ;執(zhí)行cpuid  
  26. mov deax, eax ;以下四行代碼把寄存器中的變量存入臨時(shí)變量  
  27. mov debx, ebx  
  28. mov decx, ecx  
  29. mov dedx, edx  
  30. }  
  31. m_eax = deax; // 把臨時(shí)變量中的內(nèi)容放入類成員變量  
  32. m_ebx = debx;  
  33. m_ecx = decx;  
  34. m_edx = dedx;  

 

這樣就可以通過直接調(diào)用Executecupid()函數(shù)的方式來執(zhí)行C++ cpuid指令了,返回值存在類成員變量m_eax, m_ebx, m_ecx和m_edx中。

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2010-02-01 10:54:37

C++框架

2009-06-18 10:29:24

Hibernate I

2010-02-04 14:01:43

C++非類型類模板參數(shù)

2009-12-14 17:48:46

Ruby String

2020-01-07 15:10:32

Linuxinode命令

2009-12-04 18:00:46

PHP開發(fā)MVC模型

2010-07-20 12:35:33

SQL Server索

2024-01-29 00:35:00

Go并發(fā)開發(fā)

2023-12-27 19:52:08

Go模塊命令

2009-12-09 14:04:45

PHP include

2010-01-18 17:29:35

VB.NET函數(shù)調(diào)用

2009-12-03 18:07:47

PHP轉(zhuǎn)義

2009-12-07 14:53:13

PHP抽象類應(yīng)用

2009-12-16 10:33:31

Ruby更新文件

2009-12-17 11:36:55

Ruby輸入輸出

2009-12-16 17:00:43

Ruby on Rai

2009-12-04 17:16:41

PHP析構(gòu)函數(shù)

2013-08-06 10:40:38

大數(shù)據(jù)數(shù)據(jù)

2010-08-05 15:40:07

DB2快照函數(shù)

2010-02-23 17:55:24

WCF雙向通信
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 草久久免费视频 | 精品九九久久 | 亚洲一区二区三区在线视频 | aa级毛片毛片免费观看久 | 国产视频二区 | 天天视频一区二区三区 | 亚洲精品乱码久久久久久蜜桃 | 韩日一区二区三区 | 久久精品视频在线观看 | 老外黄色一级片 | 成人在线视频一区 | 国产欧美精品一区二区色综合朱莉 | 成人精品一区二区三区四区 | 羞羞视频免费观看入口 | 亚洲欧洲小视频 | 一色一黄视频 | 亚洲精品一二三 | 午夜免费视频 | 成人九色 | 亚洲在线成人 | 精品久久久久一区二区国产 | 日韩三级电影在线看 | 成人亚洲视频 | 一级大片网站 | 久久久精品一区 | 色资源站| 91精品国产色综合久久不卡蜜臀 | 三级在线免费观看 | 日韩精品一区二区三区中文在线 | 奇色影视 | 一级毛片免费 | 国产精品久久久久一区二区 | 亚洲一区视频 | 日本久久精品视频 | 五月婷婷激情网 | 中文在线一区 | 九七午夜剧场福利写真 | caoporn国产精品免费公开 | 国产成人精品久久久 | 久久久久香蕉视频 | 日韩网站在线观看 |