摘要:計算機的內存,計算機中所有程序的運行都在內存中進行,也就是你電腦的內存條中運行的。計算機內存也被稱為隨機訪問存儲器,Random Access Memory,簡稱RAM。
內存一般用于存放程序指令和運算數據,幫助CPU與硬盤等外部存儲設備進行數據的交換,內存只能臨時存放程序的指令和數據,當電腦關閉之后,內存當中的數據就會隨之消失。計算機當中的程序指令,或者是操作數據都是以二進制的形式在內存當中存儲和計算的。
我們可以將內存看作是排成一排的方格,每個方格可以存儲0或者是1這兩種數字。
一個方格也被稱為一個比特位,將8個連續的比特分為一組,代表1個字節byte。如果將內存比作是一棟大樓的話,那么字節就是大樓當中的房間,而每個房間都對應一個唯一的門牌,所以每個字節都有一個唯一的地址。那么這些地址也被稱為內存地址。通過內存地址,我們可以訪問內存當中的每一個字節。內存地址一般用16進制表示,16進制表示的數字用0X開頭,假如說內存地址從八個0到八個F,那個內存的大小就是16的八次方,也就是2^32次方個字節=4GB大小。
使用Windows當中的DEBUG程序,可以模擬并且查看CPU、寄存器,還有內存當中的相關數據,這里我們使用DEBUG命令主要是為了更加直觀的觀察和理解內存,觀察到的數據并不是當前內存當中真實的數據。那么我們除了使用字節為單位來表示內存的大小,還可以使用千字節KB,兆字節MB,還有千兆字節GB來表示,一般現在的計算機都是以GB來形容內存的大小,其中1KB等于1024字節,1MB等于1024KB,1GB等于1024MB,那么2^23方字節就是4GB了。
那么程序到底是如何運行的呢?開發的軟件放在我們電腦的硬盤上,比如電腦上我們經常使用的QQ軟件,點擊QQ圖標—》右擊—》屬性。可以看到QQ是一個.exe可執行文件。當我們雙擊QQ時,QQ程序就會運行起來。程序在運行過程中要先放到從內存中。就以這個QQ為例,QQ.exe文件肯定是用某一個編譯器生成的文件。通過在編譯器中寫好代碼,然后編譯、連接,將我們學過的函數啊、代碼啊、變量啊等等轉換成電腦CPU可識別的010101數字。也就是我們寫的代碼包含了大量的CPU能識別的機器代碼、CPU指令。生成的.exe文件里面就是0101010101
CPU讀取內存中的數據,讀取指令控制執行相應的操作。在CPU內部有寄存器、運算器和控制器。因為寄存器就在內部,所以說內存中需要計算的數據首先要將其拿到寄存器中進行運算,將算好的數據送回到內存中去。通常CPU會先將內存中的數據存儲到寄存器中,然后再對寄存器中的數據進行運算。假設內存中有塊紅色內存空間的值是3,現在想把它的值加1,并將結果存儲到藍色內存空間。1、CPU首先會將紅色內存空間的值放到EAX寄存器中:mov eax,紅色內存空間
2、然后讓EAX寄存器與1相加:add eax,1
3、最后將值賦值給內存空間:mov 藍色內存空間,eax
原文標題:程序是如何運行的呢?
文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
存儲器
+關注
關注
38文章
7452瀏覽量
163607 -
計算機
+關注
關注
19文章
7423瀏覽量
87719 -
程序
+關注
關注
116文章
3777瀏覽量
80853
原文標題:程序是如何運行的呢?
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論