程序是如何控制硬件的?

眾所周知怠益,計算只能識別二進(jìn)制仪搔,任何程序或軟件,最終都要經(jīng)過編譯或解釋轉(zhuǎn)換成二進(jìn)制才能被計算機(jī)識別蜻牢。源代碼烤咧,源代碼就是由程序員使用各種編程語言編寫的還未經(jīng)編譯或者解釋的程序文本偏陪,編譯或解釋能把源代碼翻譯成等效的二進(jìn)制代碼,也就是CPU能夠識別的機(jī)器語言煮嫌。
image

編譯和解釋

編譯和解釋都是對源代碼的解釋處理方式笛谦,而由于他們的操作方法不同,所以會有不同的運(yùn)行的效果:

  • 編譯是把源代碼的每一條語句都編譯成機(jī)器語言昌阿,并最終生成二進(jìn)制文件饥脑,這樣運(yùn)行時計算機(jī)可以直接以機(jī)器語言來運(yùn)行此程序,在運(yùn)行時會有很好的性能懦冰;

  • 解釋器是只有在執(zhí)行到對應(yīng)的語句時才會將源代碼一行一行的解釋成機(jī)器語言好啰,給計算機(jī)來執(zhí)行,所以使用解釋器來執(zhí)行的語言也被稱為動態(tài)語言儿奶;

hex文件

在單片機(jī)中框往,源代碼經(jīng)過編譯之后生成hex文件,該文件以行為單位每行以冒號開頭內(nèi)容全部為16進(jìn)制代碼闯捎。那為啥是十六進(jìn)制而不是二進(jìn)制椰弊,為什么不直接生成二進(jìn)制代碼?

image

16進(jìn)制代碼它的每一個字節(jié)都有其特定的含義瓤鼻,比如數(shù)據(jù)長度秉版、起始地址、數(shù)據(jù)類型等信息茬祷。所以在編譯的時候就能檢驗代碼是否有錯誤清焕,能夠在一定程度上降低錯誤率,為代碼的傳輸存儲帶來便利祭犯,而二進(jìn)制代碼卻沒有這個功能秸妥;

并且hex代碼通過程序燒寫就能轉(zhuǎn)換成CPU就能識別的二進(jìn)制代碼。

但是無論是編譯或者解釋沃粗,最終的結(jié)果都是二進(jìn)制代碼粥惧,在CPU看來,二進(jìn)制代碼就是一組特定的高低電平的組合最盅;這些高低電平最終去給內(nèi)存條中相應(yīng)的一個個電容充電突雪。

那么CPU如何執(zhí)行二進(jìn)制的代碼呢?

CPU是有工程師精心設(shè)計的涡贱,我們可以把CPU看作是海量的開關(guān)組合咏删,這個開關(guān)由三極管組成,三極管/場效應(yīng)管類似繼電器(一種通過線圈產(chǎn)生磁場问词、然后用磁場控制物理開關(guān)的通斷與否的設(shè)備)督函;在它一個管腳上輸入/切斷電壓信號,另一個管腳就會出現(xiàn)高/低電平;

ps:繼電器是一種利用電磁鐵控制的開關(guān)侨核;當(dāng)向電磁鐵通電時就產(chǎn)生磁場草穆,而這個磁場就會吸合或者分離開關(guān),從而實現(xiàn)“以微弱電流控制另一條電路的通斷”這個功能搓译。

三極管拿來當(dāng)開關(guān)使用時悲柱,和這種繼電器效果幾乎一樣。

人類的第一臺萬用型計算機(jī)馬克一號就擁有3000多支繼電器些己,這也是它的核心零部件豌鸡,所以它也被稱作為繼電器,繼電器在這臺計算機(jī)中的作用就是開關(guān)段标。

image

現(xiàn)代的計算機(jī)中使用了三極管來代替繼電器的原理也是一樣的涯冠,CPU中有規(guī)模龐大的開關(guān)組,當(dāng)給開關(guān)組輸入一組特定的高低電瓶組合時逼庞,就會導(dǎo)致其內(nèi)部出現(xiàn)復(fù)雜的開關(guān)動作蛇更,最終產(chǎn)生另一種高低電瓶的組合作為輸出,輸出的電平經(jīng)過放大電路赛糟、模數(shù)轉(zhuǎn)換電路等變換之后派任,就可以驅(qū)動相應(yīng)的硬件動作。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末璧南,一起剝皮案震驚了整個濱河市掌逛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌司倚,老刑警劉巖豆混,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異动知,居然都是意外死亡皿伺,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門拍柒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來心傀,“玉大人,你說我怎么就攤上這事拆讯。” “怎么了养叛?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵种呐,是天一觀的道長。 經(jīng)常有香客問我弃甥,道長爽室,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任淆攻,我火速辦了婚禮阔墩,結(jié)果婚禮上嘿架,老公的妹妹穿的比我還像新娘。我一直安慰自己啸箫,他們只是感情好耸彪,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著忘苛,像睡著了一般蝉娜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扎唾,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天召川,我揣著相機(jī)與錄音,去河邊找鬼胸遇。 笑死荧呐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的纸镊。 我是一名探鬼主播坛增,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼薄腻!你這毒婦竟也來了收捣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤庵楷,失蹤者是張志新(化名)和其女友劉穎罢艾,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尽纽,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡咐蚯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了弄贿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片春锋。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖差凹,靈堂內(nèi)的尸體忽然破棺而出期奔,到底是詐尸還是另有隱情,我是刑警寧澤危尿,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布呐萌,位于F島的核電站,受9級特大地震影響谊娇,放射性物質(zhì)發(fā)生泄漏肺孤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赠堵。 院中可真熱鬧小渊,春花似錦、人聲如沸茫叭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杂靶。三九已至梆惯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吗垮,已是汗流浹背垛吗。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留烁登,地道東北人怯屉。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像饵沧,于是被迫代替她去往敵國和親锨络。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容