計(jì)算機(jī)組成原理學(xué)習(xí)(二)

前言
本次計(jì)算機(jī)組成原理學(xué)習(xí)主要分為兩塊

我們的世界是多元多義的,而計(jì)算機(jī)的世界永遠(yuǎn)是枯燥的博烂,除了0就是1香椎,為了能夠勾畫出我們能夠理解的東西,我們定義了單位字節(jié)禽篱,但是這些又不能被大多數(shù)人認(rèn)知畜伐,因?yàn)槲覀儾荒軐懸黄恼拢缓鬂M篇都是0和1吧躺率,所以后來CPU的架構(gòu)師們設(shè)計(jì)了很多機(jī)器指令玛界,這些指令剛開始是一些十六進(jìn)制的機(jī)器碼,而這些指令的集合就是CPU指令集悼吱,隨著科技的發(fā)展慎框,這樣的設(shè)計(jì)已經(jīng)不能滿足需求,為了讓更多的人能夠參與進(jìn)來后添,頂層設(shè)計(jì)師們設(shè)計(jì)了一種最接近CPU指令集的低級語言笨枯,我們稱它為匯編語言,匯編的誕生遇西,讓計(jì)算機(jī)有了質(zhì)的發(fā)展馅精。
??匯編語言已經(jīng)能夠讓很多人編寫自己的軟件,但是這樣還不夠粱檀,因?yàn)椴煌腃PU生產(chǎn)廠家指令集不一致,出現(xiàn)了一個(gè)問題就是一次編寫不能重復(fù)使用茄蚯,不同的CPU需要一定的修改程序的額外工作哮塞,后來就提出了高級語言尸执,CPU廠家根據(jù)ISA(工業(yè)標(biāo)準(zhǔn)規(guī)范架構(gòu))統(tǒng)一協(xié)定實(shí)現(xiàn)并支持匯編語言集合(其中有少些匯編語言功能會有所不同)绊诲,這種匯編集合就是匯編指令集。

一世舰、CPU指令集(機(jī)器語言)和匯編語言

  • CPU指令集
    由十六進(jìn)制數(shù)字組成的一組指令。每條指令需要查大量的表格來確定每個(gè)數(shù)字表示什么意思。每個(gè)廠家的指令集都有不同查剖。

  • 匯編語言
    將一組一組的十六進(jìn)制數(shù)字用助記符(Mnemonic)表示效览,這些助記符就是匯編語言哆键,寫好的匯編程序可以通過匯編器(Assembler)去查表把助記符替換成數(shù)字闪盔,也就把匯編語言翻譯成了機(jī)器語言。

匯編過程

注意:
1头岔、匯編語言和機(jī)器語言的指令是一一對應(yīng)的峡竣,匯編語言有三條指令适掰,機(jī)器語言也有三條指令稚伍,匯編器就是做一個(gè)簡單的替換工作
2、

二、32/64位CPU、操作系統(tǒng)、應(yīng)用程序

  • 32/64位CPU
    指的是CPU的處理數(shù)據(jù)的能力(每個(gè)CPU時(shí)鐘周期內(nèi),CPU能夠處理的數(shù)據(jù)量(二進(jìn)制數(shù)的位數(shù)長度))。

注意:
該能力影響CPU的運(yùn)算速度和內(nèi)存尋址能力贵白。位數(shù)更大的機(jī)器的運(yùn)算速度和內(nèi)存尋址能力更快和更大禁荒,比如靴寂,64位機(jī)有比32位機(jī)更快的運(yùn)算速度剖踊,64位機(jī)支持比32機(jī)更大的內(nèi)存固惯。

  • 32/64位操作系統(tǒng)
    指的是操作系統(tǒng)能夠操作的最大內(nèi)存地址空間梆造。32位只能支持并且操作最大4GB的內(nèi)存,而64位支持128G內(nèi)存葬毫。

  • 32/64位應(yīng)用程序
    指的是該軟件能夠操作的最大內(nèi)存地址空間镇辉。32位應(yīng)用程序只能操作最大4GB的內(nèi)存,而64位支持128G內(nèi)存贴捡。

  • 三者位數(shù)上關(guān)系
    從理論上來講忽肛,三者的位數(shù)要保持一致的。實(shí)際上情況烂斋,
    1屹逛、64位CPU能夠運(yùn)行32位操作系統(tǒng),32位系統(tǒng)不能運(yùn)行64位CPU上汛骂。

CPU的位數(shù)與操作系統(tǒng)的位數(shù)間的關(guān)系 不同位數(shù)的CPU的指令集的指令長度是不同的罕模。所以,理論上32位CPU上只能跑32位操作系統(tǒng)帘瞭、64位CPU上只能跑64位操作系統(tǒng)手销。 但是為了實(shí)現(xiàn)”升級到64位硬件的同時(shí)保證之前購買的32位軟件仍然能夠運(yùn)行”,所以主要廠商對CPU進(jìn)行處理图张,使64位CPU能夠運(yùn)行32位操作系統(tǒng)锋拖。

2诈悍、64位操作系統(tǒng)能夠運(yùn)行32位軟件,32軟件不能運(yùn)行在64位系統(tǒng)上兽埃。

三侥钳、程序運(yùn)行原理

首先我們通過上面的學(xué)習(xí),高級語言需要通過翻譯成機(jī)器語言才能執(zhí)行柄错,而翻譯的方式分為兩種舷夺,一種是編譯型,另一種是解釋型售貌,因此我們基本上將高級語言分為兩大類给猾,一種是編譯型語言,例如C颂跨,C++敢伸,Java,另一種是解釋型語言恒削,例如Python池颈、Ruby、MATLAB 钓丰、JavaScript躯砰。

  • 編譯型
    源程序全部編譯成二進(jìn)制代碼的可運(yùn)行程序,以后運(yùn)行該程序無需再經(jīng)過編譯過程携丁。
  • 解釋型
    源程序解釋一句琢歇,然后執(zhí)行一句,直至結(jié)束梦鉴,以后每次運(yùn)行都需要解釋引擎矿微,解釋一句,執(zhí)行一句尚揣。

注意:
關(guān)于Java語言到底是編譯型還是解釋型涌矢,這里不做討論。

讓我們拿一個(gè)簡單的C程序如何在操作系統(tǒng)中運(yùn)行作為例子快骗,再細(xì)入的學(xué)習(xí)下整個(gè)運(yùn)行全過程娜庇。首先C語言程序需要經(jīng)過編譯后才能運(yùn)行。編譯過程如下:預(yù)處理方篮、編譯名秀、匯編和鏈接。

  • 預(yù)處理
    預(yù)處理是編譯過程的第一遍做替換工作藕溅,將頭文件匕得,條件編譯指令和宏中的引用用真實(shí)的實(shí)現(xiàn)代碼替換,同時(shí)完成其他工作。
  • 編譯
    編譯是第二遍汁掠,它將C語言程序轉(zhuǎn)換為匯編語言程序略吨。
  • 匯編
    匯編將匯編程序轉(zhuǎn)換成機(jī)器語言程序,也就是機(jī)器指令序列考阱。
  • 鏈接
    是編譯的最后階段翠忠。這需要一個(gè)或多個(gè)目標(biāo)文件或庫作為輸入,并結(jié)合他們產(chǎn)生一種單一的(通常是可執(zhí)行文件)文件乞榨。在這樣做時(shí)秽之,它解析引用外部符號,分配給最后地址的程序/函數(shù)和變量吃既,并修改代碼和數(shù)據(jù)考榨,以反映新的地址(一個(gè)稱為重定位的處理)
C語言編譯全過程

注意:
1、鏈接的作用
??編譯的最后一個(gè)階段是鏈接鹦倚,鏈接的作用是將程序代碼與操作系統(tǒng)中自帶的動(dòng)態(tài)鏈接庫和系統(tǒng)API進(jìn)行關(guān)聯(lián)段化。只有關(guān)聯(lián)后程序才能運(yùn)行券躁。

如果你們想更細(xì)入的了解程序運(yùn)行過程诵原,那就要去深讀《編譯原理》活喊。因本人知識有限云头,如果有錯(cuò)誤捐友,請指出,隨時(shí)溝通交流溃槐,感謝匣砖。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市昏滴,隨后出現(xiàn)的幾起案子猴鲫,更是在濱河造成了極大的恐慌,老刑警劉巖谣殊,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拂共,死亡現(xiàn)場離奇詭異,居然都是意外死亡姻几,警方通過查閱死者的電腦和手機(jī)宜狐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛇捌,“玉大人抚恒,你說我怎么就攤上這事÷绨瑁” “怎么了俭驮?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長春贸。 經(jīng)常有香客問我混萝,道長遗遵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任譬圣,我火速辦了婚禮瓮恭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘厘熟。我一直安慰自己屯蹦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布绳姨。 她就那樣靜靜地躺著登澜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪飘庄。 梳的紋絲不亂的頭發(fā)上脑蠕,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機(jī)與錄音跪削,去河邊找鬼谴仙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛碾盐,可吹牛的內(nèi)容都是我干的晃跺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼毫玖,長吁一口氣:“原來是場噩夢啊……” “哼掀虎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起付枫,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤烹玉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后阐滩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體二打,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年掂榔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了继效。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡衅疙,死狀恐怖莲趣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情饱溢,我是刑警寧澤喧伞,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響潘鲫,放射性物質(zhì)發(fā)生泄漏翁逞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一溉仑、第九天 我趴在偏房一處隱蔽的房頂上張望挖函。 院中可真熱鬧,春花似錦浊竟、人聲如沸怨喘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽必怜。三九已至,卻和暖如春后频,著一層夾襖步出監(jiān)牢的瞬間梳庆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工卑惜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留膏执,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓露久,卻偏偏與公主長得像更米,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子抱环,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評論 2 353

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