程序与CPU
1.程序是什么?
2.程序由什么組成? 指令(算法)+數(shù)據(jù)
3.運(yùn)行中的程序存儲(chǔ)在什么位置
4.什么是內(nèi)存地址?
5.程序的解釋和運(yùn)行計(jì)算機(jī)部件叫什么?
?
CPU是什么?
電腦中重要組建之一,負(fù)責(zé)計(jì)算機(jī)控制運(yùn)行等。
CPU內(nèi)部4大組建
1.寄存器:短暫存儲(chǔ)一些值的地方(CPU中的內(nèi)存)
2.控制器:將內(nèi)存或寄存器當(dāng)中的數(shù)據(jù)進(jìn)行讀入或者寫(xiě)出
3.運(yùn)算器:里面有邏輯運(yùn)算單元,協(xié)助控制器
4.時(shí)鐘:發(fā)送頻率GHZ(如i7是3.2GHZ),相當(dāng)于計(jì)算頻率
?
控制器會(huì)更具時(shí)鐘頻率進(jìn)行運(yùn)算
?
程序員要注意寄存器!
?
程序與CPU
代碼->EXE->加載->CPU
?
高級(jí)語(yǔ)言:人類能懂的語(yǔ)言
低級(jí)語(yǔ)言:機(jī)器語(yǔ)言(CPU能懂)
每一個(gè)機(jī)器語(yǔ)言都對(duì)應(yīng)有匯編語(yǔ)言
?
高級(jí)語(yǔ)言經(jīng)過(guò)翻譯(編譯器)就能翻譯成CPU能懂的
?
亂碼:網(wǎng)絡(luò)傳輸時(shí),一個(gè)有規(guī)則的東西變成了沒(méi)規(guī)則的東西。(如1->2->3傳輸后編程2->1->3)
編碼不一致不能稱為亂碼(解析的不對(duì))
?
EXE->加載到內(nèi)存里面,這時(shí)CPU就能讀取內(nèi)存了。
?
CPU中的寄存器是如何來(lái)工作的?
?
寄存器
1.累計(jì)寄存器:(CPU是做加法的)存儲(chǔ)運(yùn)算之后的數(shù)據(jù),在設(shè)計(jì)上可能和其他寄存器不同。
2.標(biāo)志寄存器:記錄了CPU的狀態(tài)。幫助進(jìn)行邏輯判斷(兩數(shù)相等,或者左邊的數(shù)大于后面的數(shù)等等等等)。
3.程序計(jì)數(shù)器:和程序關(guān)聯(lián)非常大,存儲(chǔ)了下一條指令在內(nèi)存中的地址。
4.基址寄存器:存儲(chǔ)當(dāng)前整個(gè)數(shù)據(jù)內(nèi)存的開(kāi)始的地址。
5.變址寄存器:存儲(chǔ)基址寄存器的相對(duì)地址。
6.通用寄存器:什么地方都能使用,程序員使用最多的。
7.指令寄存器:CPU內(nèi)部使用,程序員無(wú)法使用。存儲(chǔ)當(dāng)前指令。
8.棧寄存器:記錄棧的起始位置。
?
電腦里面有了內(nèi)存為什么還要寄存器呢?
寄存器讀和存的速度遠(yuǎn)大于內(nèi)存的讀和存的速度,可以把寄存器當(dāng)作CPU中的內(nèi)存
?
CPU通過(guò)主板和內(nèi)存進(jìn)行通信。
總結(jié)
- 上一篇: docker部署mysql项目_dock
- 下一篇: java 声明静态类,为什么你不能在Ja