顆粒識別c語言,c語言人臉識別

本文目錄一覽:

如何用C語言編寫探測cpu的程序

參考下面的文章:

利用利用CPUID 彙編指令(機器碼:0FH A2H, 如果你的編譯器不支持CPUID 指令,只有emit 機器碼了), 該指令可以被如下CPU識別:

Intel 486 以上的CPU,

Cyrix M1 以上的CPU,

AMD Am486 以上的CPU

(1) 取CPU OEM 字元串, 判斷CPU 廠商

先讓EAX=0, 再調用CPUID

Inel的CPU將返回:

EBX:756E6547H ‘Genu’

EDX:49656E69H ‘ineI’

ECX:6C65746EH ‘ntel’

EBX,EDX,ECX 將連成”GenuineIntel”, 真正的Intel。

Cyrix 的CPU 將返回:

EBX:43797269H

EDX:78496E73H

ECX:74656164H

“CyrixInstead”,”Cyrix 來代替”。

AMD 的CPU 將返回:

EBX:41757468H

EDX:656E7469H

ECX:63414D44H

“AuthenticAMD”, 可信的AMD。

在Windows98中,用右鍵單擊”我的電腦”,選擇” 屬性- 常規”在計算機描述 處就可看見CPU OEM 字元串。

(2)CPU 到底是幾86, 是否支持MMX

先讓EAX=1,再調用CPUID

EAX的8到11位就表明是幾86

3 – 386

4 – i486

5 – Pentium

6 – Pentium Pro Pentium II

2 – Dual Processors

EDX 的第0位:有無FPU

EDX的第23位:CPU是否支持IA MMX,很重要啊 !如果你想用那57條新增的指 令,先檢查這一位吧,否則就等著看Windows 的”該程序執行了非法指令,將被關 閉” 吧。

(3) 專門檢測是否P6架構

先讓EAX=1,再調用CPUID

如果AL=1,就是Pentium Pro 或Pentium II

(4) 專門檢測AMD的CPU信息

先讓EAX=80000001H,再調用CPUID

如果EAX=51H, 是AMD K5

如 果EAX=66H, 是K6

EDX第0 位: 是否有FPU( 多餘的 !誰用過沒FPU的K5,K6?)

EDX 第23 位,CPU是否支持MMX,

程序如下:

//——CPUID Instruction Demo Program————

#include

#include

#pragma hdrstop

//————————————————

#pragma inline

#pragma argsused

int main(int argc, char **argv)

{

char OEMString[13];

int iEAXValue,iEBXValue,iECXValue,iEDXValue;

_asm {

mov eax,0

cpuid

mov DWORD PTR OEMString,ebx

mov DWORD PTR OEMString+4,edx

mov DWORD PTR OEMString+8,ecx

mov BYTE PTR OEMString+12,0

}

cout “This CPU ‘s OEM String is:” OEMString endl;

_asm {

mov eax,1

cpuid

mov iEAXValue,eax

mov iEBXValue,ebx

mov iECXValue,ecx

mov iEDXValue,edx

}

if(iEDXValue0x800000)

cout “This is MMX CPU” endl;

else

cout “None MMX Support.” endl;

int iCPUFamily=(0xf00 iEAXValue) 8;

cout “CPU Family is:” iCPUFamily endl;

_asm{

mov eax,2

CPUID

}

if(_AL==1)

cout “Pentium Pro or Pentium II Found”;

getch();

return 0;

}

最後,最好學會自己去搜索你需要的信息,

我上面的答案也是搜索來的。

關鍵字「C語言 CPU 信息」

c語言怎麼做?

int a = b[0][0];

for(int i = 0;i3;i++)

    for(int j=0;j4;j++)

    {

        if(a  b[i][j])

            a = b[i][j];

     }

晶元解密後可以得到C語言程序么?

不可能得到。

就算解密,得到的也是編譯後的二進位文件。

源代碼是不可能得到的,也是沒法修改的。

C語言進階04-預防、檢測及消除bug

01

開發軟體不等於編碼

寫程序時會有”編碼–測試–調試”的習慣.很不幸,這是開發軟體的錯誤方法.專業的程序員會使用策略來預防、檢測及消除軟體bug.編碼不是在開發軟體.編碼的意思是在文本編輯器中輸入語句.編碼只是開發軟體的小部分.開發軟體需要編程前、編程中、編程後的許多步驟.下面分著講解.

02

編程前

1、了解需求.

2、考慮可能的輸入和期望的輸出.

3、識別出有效但非期望的輸入和正確的輸出.這是對於開發可靠的軟體而言是一個關鍵點.

4、識別出無效輸入並找到檢測它們的方法.要注意即使輸入無效的數據時,程序也不能奔潰.

5、想出解決辦法,並記錄.

6、設計程序,可以節省大量的時間.

03

編程中

1、若想正確且更快的完成程序, 就寫更多的代碼.為了滿足一個要求而把代碼放到一個更大的程序之前,寫一個小程序來測試你的解決方案.即單元測試.

2、使用自動縮進的文本編輯器可以幫你檢查代碼是否對齊,可以節省寶貴的時間.

3、在運行之前一行一行的讀代碼.可以幫你找到通過測試很難發現的問題.

4、自己想一些測試例子. 若自己不知道自己寫的代碼,則計算機也不知道.

5、盡量使用函數來重構代碼,避免複製代碼.

6、要用版本控制系統(這不是廢話嗎).

7、編譯時,警告信息也不要放過.

04

編程後

不要依賴測試,測試只會告訴你程序沒有正常工作,不會告訴你程序真的在正常運行.很可能測試用例沒有涵蓋所有可能的方案.通過測試用例涵蓋所有可能的方案是很困難的.

05

常見錯誤

未初始化變數: 一些人認為所有的變數都會自動初始化為0,C語言中不會初始化.通過測試很難測試出來.

錯誤數據類型: 需要理解並正確地使用類型,編程語言的趨勢是讓數據類型更有限制性,防止犯意外的錯誤.

06

後執行式和互動式調試

調試一個程序分為幾個階段, 舉個列子:

1、從一個文件中讀取一些整數;

2、把整數排序;

3、把排好序的整數存到另一個文件中;

單元測試: 在上面三部整合之前測試每一部分叫作單元測試.

對於單元測試,經常需要寫一些額外的代碼,作為單獨部分的”驅動”.調試可能是互動式或後執行式的.若程序會花費幾個小時,你就不會想要用互動式來調試這個程序了.相反,你會想要程序列印出調試信息,即日誌.

對互動式調試而言列印調試信息存在多個問題:

1、需要插入代碼來列印調試信息.多數情況下,調試信息必須在隨後被移除,因為此信息不應該出現在最終的代碼和它的輸出中.

2、如果有很少的信息,那麼就會缺少足夠的信息幫助你判斷哪裡錯了.

3、如果信息太多,可以忽略不相關的信息,獲得好信息是很困難的.

4、最糟糕的是,問題可能會出現在意想不到的地方,而那裡卻並未插入調試信息.結果就是添加越來越多的調試信息.這是很耗時的.

07

生產代碼與測試代碼分離

自己應該能檢測出自身bug的程序.編寫程序之前就應該考慮編寫測試代碼.這是普遍的做法,這個稱為 測試驅動的開發. 開發的時候需要將測試代碼和開發代碼分開,這樣可以隨意刪除測試代碼.

內存的顆粒識別,詳解

您好,現在內存顆粒主要有以下廠家的產品:

samsung(三星),elpida(爾必達),hynix,(現代)nanya,(藍牙)infineon,(英飛凌)

在內存顆粒上都會有用激光蝕刻上去的相應的logo,您可以看得到,具體各個廠家的產品編碼序列號的意思可以參考下面的內容:

DDR SDRAM:

HYNIX DDR SDRAM顆粒編號:

HY XX X XX XX X X X X X X X – XX X

1 2 3 4 5 6 7 8 9 10 11 12 – 13 14

整個DDR

SDRAM顆粒的編號,一共是由14組數字或字母組成,他們分別代表內存的一個重要

參數,了解了他們,就等於了解了現代內存。

顆粒編號解釋如下:

1. HY是HYNIX的簡稱,代表著該顆粒是現代製造的產品。

2. 內存晶元類型:(5D=DDR SDRAM)

3. 處理工藝及供電:(V:VDD=3.3V VDDQ=2.5V;U:VDD=2.5V

VDDQ=2.5V;W:VDD=2.5V VDDQ=1.8V;S:VDD=1.8V VDDQ=1.8V)

4. 晶元容量密度和刷新速度:(64:64M 4K刷新;66:64M 2K刷新;28:128M

4K刷新;56:256M

8K刷新;57:256M 4K刷新;12:512M 8K刷新;1G:1G 8K刷新)

5. 內存條晶元結構:(4=4顆晶元;8=8顆晶元;16=16顆晶元;32=32顆芯

片)

6. 內存bank(儲蓄位):(1=2 bank;2=4 bank;3=8 bank)

7. 介面類型:(1=SSTL_3;2=SSTL_2;3=SSTL_18)

8. 內核代號:(空白=第1代;A=第2代;B=第3代;C=第4代)

9. 能源消耗:(空白=普通;L=低功耗型)

10.封裝類型:(T=TSOP;Q=LOFP;F=FBGA;FC=FBGA(UTC:8x13mm))

11.封裝堆棧:(空白=普通;S=Hynix;K=MT;J=其它;M=MCP(Hynix);MU

=MCP(UTC))

12.封裝原料:(空白=普通;P=鉛;H=鹵素;R=鉛+鹵素)

13.速度:(D43=DDR400 3-3-3;D4=DDR400 3-4-4;J=DDR333;M=DDR333 2

-2-2;K=DDR266A;H=DDR266B;L=DDR200)

14.工作溫度:(I=工業常溫(-40 – 85度);E=擴展溫度(-25 – 85度))

由上面14條註解,我們不難發現,其實最終我們只需要記住2、3、6、13等幾處數

字的實際含義,就能輕鬆實現對使用現代DDR SDRAM內存顆粒的產品進行辨別。尤

其是第13位數字,它將明確的告訴消費者,這款內存實際的最高工作狀態是多少

。假如,消費者買到一款這裡顯示為L的產品(也就是說,它只支持DDR200)

註:有的編碼沒有那麼長,但幾個根本的數字還是有的

LGS的內存可以說是目前市場上見到的最多,也是最廣泛的內存了,所以LGS應該

首先排第一位。

LGS的內存編碼規則:

GM 72 X XX XX X X X X X XXX

1 2 3 4 5 6 7 8 9 10 11

定義:

1、GM代表LGS公司。

2、72代表SDRAM。

3、V代表3V電壓。

4、內存單位容量和刷新單位:其中:16:16M,4K刷新;17:16M,2K刷新;28:

128M,4K刷新;64: 64M,16K刷新。65:64M,8K刷新;66:64M,4K刷新。

5、數據帶寬:4:4位,8:8位,16:16位,32:32位。

6、晶元組成:1:1BAND,2:2BANK,4:4BANK,8:8BANK

7、I/O界面:一般為1

8、產品系列:從A至F。

9、功耗:空白則是普通,L是低功

10、封裝模式:一般為T(TSOP)

11、速度:其中:8:8NS,7K:10NS(CL2),7J(10NS,CL23),10K(10NS[

一說15NS],PC66), 12(12NS,83HZ),15(15NS,66HZ)

二、HY(現代HYUNDAI)

現代是韓國著名的內存生產廠,其產品在國內的佔用量也很大。

HY的編碼規則:

HY 5X X XXX XX X X X X- XX XX

1 2 3 4 5 6 7 8 9 10 11

定義:

1、HY代表現代。

2、一般是57,代表SDRAM。

3、工藝:空白則是5V,V是3V。

4、內存單位容量和刷新單位:16:16M4K刷新;64:64M,8K刷新;65:64M,4K

刷新;128:128M, 8K刷新;129:128M,4K刷新。

5、數據帶寬:40:4位,80:8位,16:16位,32:32位。

6、晶元組成:1:2BANK,2:4BANK;3:8BANK;

7、I/O界面:一般為0

8、產品線:從A-D系列

9、功率:空白則為普通,L為低功耗。

10、封裝:一般為TC(TSOP)

11、速度:7:7NS,8:8NS,10P:10NS(CL23),10S:10NS,(PC100,CL3)

,10:10NS,12: 12NS,15:15NS

三、SEC(三星SAMSUNG)

做為韓國著名的電器廠商,三星的重要性不必多說,在內存方面,三星的產量雖

然不及上兩者大,但是三星一直專註於高品質、高性能的產品。三星的標識不是

很容易的就可以讀出來,而且三星的產品線較全,所以品種非常多,此處僅供普

通SDRAM參考。

SEC編碼規則:

KM4 XX S XX 0 X X XT-XX

1 2 3 4 5 6 7 89 10 11

1、KM代表SEC三星,此處編碼一般均為4。

2、數據帶寬:4:4位,8:8位,16:16位,32:32位。

3、一般均為S

4、這個數乘以S前邊的位數就是內存的容量。

5、一般均為0

6、晶元組成:2:2BANK,3:4BANK

7、I/O界面:一般為0

8、版本號

9、封裝模式:一般為T:TSOP

10、功耗:F低耗,G普通

11、速度:7:7NS,8:8NS,H:10NS(CL23),L:10NS(CL3),10:10NS。

四、MT(MICRON美凱龍)

美凱龍是美國著名的計算機生產商,同時也是一家計算機設備製造商,其內存的

產品聞名全美國,被廣泛的機器所採用。美凱龍內存的品質優異,但價格較韓國

的產品略高。

MT48 XX XX M XX AX TG-XX X

1 2 3 4 5 6 7 8 9 10

1、MT代表美凱龍MICRON

2、48代表SDRAM。

3、一般為LC:普通SDRAM

4、此數與M後位數相乘即為容量。

5、一般為M

6、位寬:4:4位,8:8位,16:16位,32:32位

7、AX代表write Recovery(twr),A2則代表twr=2clk

8、TG代表TSOP封裝模式。

9、速度:7:7NS,75:7.5NS,8X:8NS(其中X為從A到E:讀取的周期分別是:

333,323,322, 222,222,所以D和E較好),10:10NS

10、如有L則為低功耗,空白則為普通。

五、HITACHI(日立HITACHI)

日立是日本的著名的微電子生產廠,其內存雖然在市場上佔有量不大,但品質還

是不錯的!

HM 52 XX XX 5 X X TT- XX

1 2 3 4 5 6 7 8 9

1、HM代表日立。

2、52代表SDRAM,51則為EDO

3、容量

4、位寬:40:4位,80:8位,16:16位

5、一般為5

6、產品系列:A-F

7、功耗:L為低耗,空白則為普通

8、TT為TSOP封裝模式

9、速度:75:7.5NS,80:8NS,A60:10NS(CL23),B60:10NS(CL3)

六、SIEMENS(西門子)

西門子是德國最大的產業公司,其產品包羅萬向,西門子的電子產品也是歐洲最

大的品牌之一(另一是PHILIPS)。西門子的內存產品多為台灣的OEM廠商製造的

,產品品質還算不錯。

HYB39S XX XX 0 X T X -X

1 2 3 4 5 6 7 8 9

1、HYB代表西門子

2、39S代表SDRAM

3、容量

4、位寬:40:4位,80:8位,16:16位

5、一般為0

6、產品系列

7、一般為T

8、L為低耗,空白為普通

9、速度:

6:6NS,7:7NS,7.5:7.5NS,8:8NS(CL2),8B:10NS(CL3),10:10NS

七、FUJITSU(富士通FUJITSU)

富士通是日本專業的計算機及外部設備製造商,他的內存產品主要是供應OEM商,

市場上僅有少量零售產品。

MB81 X XX XX X2 X-XXX X FN

1 2 3 4 5 6 7 8 9

1、MB81代表富士通的SDRAM

2、PC100標準的多為F,普通的內存為1

3、容量

4、位寬:4:位,8:8位,16:16位,32:32位

5、晶元組成:22:2BANK,42:4BANK

6、產品系列

7、速度:60:6NS,70:7NS,80:8NS,102:10NS(CL23),103:10NS(CL3

),100:10NS,84: 12NS,67:15NS

八、TOSHIBA(東芝)

東芝是日本著名的電器製造商,其在高端領域也有產品,例如計算機產品及通訊

衛星等等。TOSHIBA的內存產品在市場上見到的不多。

TC59S XX XX X FT X-XX

1 2 3 4 5 6 7 8

1、TC代表東芝

2、59S代表普通SDRAM

3、容量:64:64MBIT,128:128MBIT

4、位寬:04:4位,08:8位,16:16位,32:32位

5、產品系列:A-B

6、FT為TSOP封裝模式

7、空白為普通,L為低功耗

8、速度;75:7.5NS,80:8NS,10:10NS(CL3)

九、MITSUBISHI(三菱)

三菱是日本的一家汽車製造公司,因其多元化發展,所以在IT業和家電業也有產

品,三菱的微集成電路技術不同一般,所以其在內存領域也佔有一席之地,因為

速度、品質優異,而成為INTEL的PII/PIIICPU的緩存供應商。普通SDRAM方面,

因為較貴,所以市場上少見。

M2 V XX S X 0 X TP-XX X

1 2 3 4 5 6 7 8 9 10

1、M2代表三菱產品

2、I/O界面。一般為V

3、容量

4、一般為S,說明是SDRAM

5、位寬:2:4位,3:8位,4:16位

6、一般為0

7、產品系列

8、TP代表TSOP封裝

9、速度:

8A:8NS,7:10NS(CL23),8:10NS(CL3),10:10NS。

10、空白為普通,L為低耗。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/158149.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-19 00:39
下一篇 2024-11-19 00:39

相關推薦

  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論