1.CPU是什么?

1.程序是指令和數(shù)據(jù)的組合體.
2.CPU能夠直接識別和執(zhí)行的只有機器語言.
3.硬盤和磁盤等媒介上保存的程序只有被復(fù)制到內(nèi)存后才能運行.
4.內(nèi)存中保存指令和數(shù)據(jù)的場所,通過地址來標記和制定.
5.計算機的構(gòu)成元件中,根據(jù)程序的指令來進行數(shù)據(jù)運算,并控制整個計算機的設(shè)備稱作CPU.
CPU負責(zé)解釋和運行最終轉(zhuǎn)化為機器語言的程序內(nèi)容.
CPU內(nèi)部由寄存器、控制器、運算器和時鐘四部分構(gòu)成.寄存器可用來暫存指令、數(shù)據(jù)等處理對象,可看成內(nèi)存的一種,不同種類cpu會有多個寄存器.控制器負責(zé)把內(nèi)存上的指令、數(shù)據(jù)等讀入寄存器并根據(jù)指令的執(zhí)行結(jié)果來控制整個計算機.運算器負責(zé)運算從內(nèi)存讀入寄存器的數(shù)據(jù).時鐘負責(zé)發(fā)出CPU開始計時的時鐘信號.

    程序運行流程:C語言等高級語言-->編譯后的機器語言.exe文件-->運行時在內(nèi)存中.exe文件的副本-->CPU解釋并執(zhí)行程序內(nèi)容.
  程序啟動后,根據(jù)時鐘信號,控制器會從內(nèi)存中讀取指令和數(shù)據(jù)到寄存器中,通過對指令解釋和運行,運算器就會對數(shù)據(jù)進行運算,控制器根據(jù)運算結(jié)果來控制計算機.

程序是把寄存器當(dāng)作對象來描述的.機器語言級別的程序時通過寄存器來處理的.也就是說,使用高級語言編寫的程序在編譯后轉(zhuǎn)化為機器語言,然后再通過CPU內(nèi)部的寄存器來處理.
寄存器的主要種類和功能
累加寄存器 存儲執(zhí)行運算的數(shù)據(jù)和運算后的數(shù)據(jù) 1個
標志寄存器 存儲運算處理后的CPU的狀態(tài) 1個
程序計數(shù)器 存儲下一條指令所在內(nèi)存的地址 1個
基址寄存器 存儲數(shù)據(jù)內(nèi)存的起始地址 多個
變址寄存器 存儲基址寄存器的相對地址 多個
通用寄存器 存儲任意數(shù)據(jù) 多個
指令寄存器 存儲指令.CPU內(nèi)部使用,程序員無法對其進行讀寫操作 1個
棧寄存器 存儲棧區(qū)域的起始地址 1個

CPU每執(zhí)行一條指令,程序計數(shù)器的值就會加1,控制器參照程序計數(shù)器的值,從內(nèi)存中讀取指令并執(zhí)行,也就是說,程序計數(shù)器決定著程序的流程.

函數(shù)的調(diào)用機制
哪怕是高級語言編寫的程序,函數(shù)調(diào)用處理也是通過把程序計數(shù)器的值設(shè)定為函數(shù)的存儲地址來實現(xiàn)的.單純的跳轉(zhuǎn)無法實現(xiàn)函數(shù)的調(diào)用,函數(shù)的調(diào)用需要在完成函數(shù)的內(nèi)部處理后,處理流程再回到函數(shù)的調(diào)用點(函數(shù)調(diào)用指令的下一個指令).因此,如果只是跳轉(zhuǎn)到函數(shù)的入口地址,處理流程久不知道應(yīng)該返回至哪里了.

機器語言的call和return指令可以解決這個問題.在函數(shù)的入口地址設(shè)定到程序計數(shù)器之前,call指令會把調(diào)用函數(shù)后要執(zhí)行的指令地址存儲在名為棧的主內(nèi)存.函數(shù)處理完畢后,再通過函數(shù)的出口來執(zhí)行return命令.return指令的功能是把保存在棧中的地址設(shè)定到程序計數(shù)器中.
CPU會把基址寄存器+變址寄存器的值解釋為實際查看的內(nèi)存地址.變址寄存器久相當(dāng)于高級語言程序中數(shù)組的索引功能. 實際地址 = 基址寄存器的值+變址寄存器的值.
機器語言指令的主要類型和功能:
數(shù)據(jù)轉(zhuǎn)送指令:寄存器和內(nèi)存、內(nèi)存和內(nèi)存、寄存器和外圍設(shè)備之間的數(shù)據(jù)讀寫操作.
運算指令:用累加寄存器執(zhí)行算數(shù)運算、邏輯運算、比較運算和位移運算.
跳轉(zhuǎn)指令:實現(xiàn)條件分支、循環(huán)、強制跳轉(zhuǎn)等.
call/return指令:函數(shù)的調(diào)用/返回調(diào)用前的地址.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,967評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,273評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,870評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,742評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,527評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,010評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,108評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,250評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,769評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,656評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,853評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,371評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,103評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,472評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,717評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,487評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,815評論 2 372

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

  • CPU是Central Processing Unit縮寫, 指的是中央處理器。 CPU的內(nèi)部結(jié)構(gòu) 程序運行流程 ...
    JunChow520閱讀 1,688評論 0 2
  • CPU CPU的作用就是解釋和運行最終轉(zhuǎn)換成機器語言的程序內(nèi)容,CPU主要包括寄存器、運算器、控制器和時鐘四個部分...
    a樂樂_1234閱讀 593評論 0 0
  • [toc] 對程序員來說, CPU 是什么 概念 程序由數(shù)據(jù)和指令組成 內(nèi)存地址 - 用來表示指令和數(shù)據(jù)存儲位置的...
    devliu_jianshu閱讀 680評論 0 0
  • 這一些列文章的主要目的:理解程序如何執(zhí)行,打好基礎(chǔ),很多東西是我們原來在學(xué)校中學(xué)過的內(nèi)容,知道的就當(dāng)復(fù)習(xí)加深影響,...
    KillerManA閱讀 863評論 1 1
  • 對程序員來說CPU是什么 程序是什么? 程序由什么組成? 什么是機器語言? 正在運行的程序存儲在什么位置? 什么是...
    陳_振閱讀 185評論 1 1