国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

程序是如何運行的呢?

2021/01/29
169
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

摘要:計算機的內(nèi)存,計算機中所有程序的運行都在內(nèi)存中進行,也就是你電腦的內(nèi)存條中運行的。計算機內(nèi)存也被稱為隨機訪問存儲器,Random Access Memory,簡稱 RAM。

內(nèi)存一般用于存放程序指令和運算數(shù)據(jù),幫助 CPU 與硬盤等外部存儲設備進行數(shù)據(jù)的交換,內(nèi)存只能臨時存放程序的指令和數(shù)據(jù),當電腦關閉之后,內(nèi)存當中的數(shù)據(jù)就會隨之消失。計算機當中的程序指令,或者是操作數(shù)據(jù)都是以二進制的形式在內(nèi)存當中存儲和計算的。

我們可以將內(nèi)存看作是排成一排的方格,每個方格可以存儲 0 或者是 1 這兩種數(shù)字。

一個方格也被稱為一個比特位,將 8 個連續(xù)的比特分為一組,代表 1 個字節(jié) byte。如果將內(nèi)存比作是一棟大樓的話,那么字節(jié)就是大樓當中的房間,而每個房間都對應一個唯一的門牌,所以每個字節(jié)都有一個唯一的地址。那么這些地址也被稱為內(nèi)存地址。通過內(nèi)存地址,我們可以訪問內(nèi)存當中的每一個字節(jié)。內(nèi)存地址一般用 16 進制表示,16 進制表示的數(shù)字用 0X 開頭,假如說內(nèi)存地址從八個 0 到八個 F,那個內(nèi)存的大小就是 16 的八次方,也就是 2^32 次方個字節(jié)=4GB 大小。

使用 Windows 當中的 DEBUG 程序,可以模擬并且查看 CPU、寄存器,還有內(nèi)存當中的相關數(shù)據(jù),這里我們使用 DEBUG 命令主要是為了更加直觀的觀察和理解內(nèi)存,觀察到的數(shù)據(jù)并不是當前內(nèi)存當中真實的數(shù)據(jù)。

那么我們除了使用字節(jié)為單位來表示內(nèi)存的大小,還可以使用千字節(jié) KB,兆字節(jié) MB,還有千兆字節(jié) GB 來表示,一般現(xiàn)在的計算機都是以 GB 來形容內(nèi)存的大小,其中 1KB 等于 1024 字節(jié),1MB 等于 1024KB,1GB 等于 1024MB,那么 2^23 方字節(jié)就是 4GB 了。

那么程序到底是如何運行的呢?開發(fā)的軟件放在我們電腦的硬盤上,比如電腦上我們經(jīng)常使用的 QQ 軟件,點擊 QQ 圖標—>右擊—>屬性??梢钥吹?QQ 是一個.exe可執(zhí)行文件。當我們雙擊 QQ 時,QQ 程序就會運行起來。

程序在運行過程中要先放到從內(nèi)存中。就以這個 QQ 為例,QQ.exe文件肯定是用某一個編譯器生成的文件。通過在編譯器中寫好代碼,然后編譯、連接,將我們學過的函數(shù)啊、代碼啊、變量啊等等轉換成電腦 CPU 可識別的 010101... 數(shù)字。也就是我們寫的代碼包含了大量的 CPU 能識別的機器代碼、CPU 指令。生成的.exe文件里面就是 0101010101…..。

CPU 讀取內(nèi)存中的數(shù)據(jù),讀取指令控制執(zhí)行相應的操作。在 CPU 內(nèi)部有寄存器、運算器和控制器。因為寄存器就在內(nèi)部,所以說內(nèi)存中需要計算的數(shù)據(jù)首先要將其拿到寄存器中進行運算,將算好的數(shù)據(jù)送回到內(nèi)存中去。

通常 CPU 會先將內(nèi)存中的數(shù)據(jù)存儲到寄存器中,然后再對寄存器中的數(shù)據(jù)進行運算。假設內(nèi)存中有塊紅色內(nèi)存空間的值是 3,現(xiàn)在想把它的值加 1,并將結果存儲到藍色內(nèi)存空間。

1、CPU 首先會將紅色內(nèi)存空間的值放到 EAX 寄存器中:mov eax,紅色內(nèi)存空間

2、然后讓 EAX 寄存器與 1 相加:add eax,1

3、最后將值賦值給內(nèi)存空間:mov 藍色內(nèi)存空間,eax

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

公眾號“果果小師弟”作者,電子信息工程碩士研究生在讀,憑借對嵌入式物聯(lián)網(wǎng)的熱愛,將嵌入式軟硬件結合起來,致力于提供包括但不限于C/C++、Linux、Python、Java、PCB、物聯(lián)網(wǎng)、嵌入式、人工智能等領域優(yōu)質(zhì)原創(chuàng)文章!

海原县| 蚌埠市| 梁河县| 巴塘县| 北辰区| 万载县| 霞浦县| 岳西县| 堆龙德庆县| 忻城县| 宁德市| 新安县| 绥宁县| 龙游县| 贵州省| 广平县| 微博| 阜平县| 邓州市| 都昌县| 花垣县| 合江县| 正阳县| 滨海县| 和林格尔县| 朝阳区| 长寿区| 白银市| 惠州市| 松桃| 桑日县| 钟山县| 成武县| 札达县| 喀什市| 水城县| 合山市| 霍林郭勒市| 罗平县| 日喀则市| 孙吴县|