問
程序是什么苞慢?
指示計算機每一步動作的一組指令程序是由什么組成的隔躲?
數(shù)據(jù) + 指令
數(shù)據(jù) + 操作
數(shù)據(jù)結(jié)構(gòu) + 算法
對象 + 接口
都一個意思穗泵,描述越來越抽象而已瓮孙。什么是機器語言坊秸?
CPU可以直接識別并使用的語言麸祷,C、C++褒搔、Java高級語言經(jīng)過編譯后最終都會轉(zhuǎn)換為機器語言然后運行阶牍。正在運行的程序存儲在什么位置?
內(nèi)存什么是內(nèi)存地址星瘾?
內(nèi)存中用來表示命令和數(shù)據(jù)存儲位置的數(shù)值計算機構(gòu)成元件中走孽,負責程序解釋和運行的是哪個?
CPU
CPU構(gòu)成
CPU (Central Processing Unit)中央處理器琳状,由數(shù)百萬至數(shù)億個晶體管構(gòu)成磕瓷。
功能器件 | 作用 |
---|---|
寄存器 | 暫存指令、數(shù)據(jù)等處理對象 |
控制器 | 負責裝載指令念逞、數(shù)據(jù)入寄存器困食,并根據(jù)指令執(zhí)行結(jié)果進行下一步動作 |
運算器 | 負責運算寄存器中的數(shù)據(jù) |
時鐘 | 發(fā)出CPU開始計時的時鐘信號,越快CPU運算越快 |
內(nèi)存翎承,指計算機的主存儲器(Main Memory)硕盹,通過控制芯片與CPU相連,主要負責存儲指令和數(shù)據(jù)叨咖。由可讀寫元素構(gòu)成瘩例,其每個字節(jié)都帶有一個地址編號啊胶,CPU通過該地址讀取內(nèi)存中的指令和數(shù)據(jù)。掉電后其中的指令垛贤、數(shù)據(jù)會被清除焰坪。
在程序員眼中,CPU是寄存器的集合體南吮。因為所有代碼最終到匯編層次都會變?yōu)閷拇嫫鞯牟僮鳌?/p>
決定程序流程的程序計數(shù)器
程序計數(shù)器琳彩,存儲下一條指令所在的內(nèi)存地址
所以,只要我們改變程序計數(shù)器的值部凑,其下一條執(zhí)行的指令就會跳到我們改的那個值去執(zhí)行指令露乏。
當程序順序執(zhí)行的時候,CPU每執(zhí)行一條指令后就會將程序計數(shù)器的值+1涂邀,使其繼續(xù)運行下去瘟仿。
當有分支跳轉(zhuǎn)時,指令直接改變程序計數(shù)器的值后則會跳轉(zhuǎn)到新的地址去取指令執(zhí)行比勉。
當進行函數(shù)調(diào)用時劳较,CALL指令會將當前地址進行壓棧,跳轉(zhuǎn)到新地址執(zhí)行完畢浩聋,return指令再出棧观蜗,回到調(diào)用的地址進行執(zhí)行。