2.5 內(nèi)存

2.5 內(nèi)存

本節(jié)必須掌握的知識(shí)點(diǎn):

u?內(nèi)存的知識(shí)

u?正在運(yùn)行的程序所占的內(nèi)存空間

u?MOV指令對(duì)內(nèi)存的操作使用

在上一節(jié)中介紹了寄存器的知識(shí),知道了寄存器是處理器(CPU)用來(lái)存儲(chǔ)數(shù)據(jù)的领迈。無(wú)論是8位栋烤、16位和32位的寄存器所有的加起來(lái)冀值,它們的數(shù)量也是有限的罪佳,如果我們存儲(chǔ)的數(shù)據(jù)非常多的話痢畜,僅靠這些寄存器存儲(chǔ)數(shù)據(jù)是不夠的敛熬,那這些數(shù)據(jù)要存在哪里呢肺稀?答案是內(nèi)存。接下來(lái)介紹內(nèi)存的知識(shí)应民。

2.5.1【內(nèi)存的知識(shí)】

在計(jì)算機(jī)的組成結(jié)構(gòu)中话原,用來(lái)存儲(chǔ)程序和數(shù)據(jù)的部件叫做存儲(chǔ)器。對(duì)于計(jì)算機(jī)來(lái)說(shuō)诲锹,有了存儲(chǔ)器繁仁,才有了記憶功能,才能保證計(jì)算機(jī)的正常運(yùn)轉(zhuǎn)归园。存儲(chǔ)器分為主存儲(chǔ)器和輔助存儲(chǔ)器黄虱,主存儲(chǔ)器又稱為內(nèi)存儲(chǔ)器【簡(jiǎn)稱內(nèi)存,本節(jié)簡(jiǎn)單介紹內(nèi)存】庸诱。那么內(nèi)存在計(jì)算機(jī)中起什么作用哪捻浦?答案是內(nèi)存是用來(lái)存儲(chǔ)計(jì)算機(jī)正在運(yùn)行的程序和程序運(yùn)行過(guò)程中的數(shù)據(jù)。

那么一個(gè)正在運(yùn)行的程序能占多少內(nèi)存空間哪桥爽?講解這個(gè)問(wèn)題之前先介紹內(nèi)存的數(shù)據(jù)位寬朱灿。

2.5.2【正在運(yùn)行的程序所占的內(nèi)存空間】

內(nèi)存的數(shù)據(jù)位寬是指內(nèi)存在運(yùn)行時(shí),一個(gè)時(shí)鐘周期內(nèi)傳遞數(shù)據(jù)的位數(shù)钠四。有8位盗扒、16位、32位、64位侣灶∠芭【本節(jié)是在32位基礎(chǔ)上講解】。根據(jù)一個(gè)正在運(yùn)行的程序?yàn)槔v解炫隶,如圖2-5-1所示淋叶。


看圖2-5-1中用黑色矩形框選出來(lái)的部分,就是一個(gè)正在運(yùn)行的程序某段程序所占用的內(nèi)存伪阶。那么我們?cè)趺垂芾砩烽荨^(qū)分這些內(nèi)存哪?可以用內(nèi)存編號(hào)來(lái)管理栅贴、區(qū)分斟湃。我們知道最小的數(shù)據(jù)寬度是字節(jié)。每一個(gè)字節(jié)對(duì)應(yīng)一個(gè)單位檐薯,形成相應(yīng)的編號(hào)凝赛,這些編號(hào)我們把它稱作“內(nèi)存地址”。圖2-5-1中內(nèi)存編號(hào)是32位的坛缕,由4個(gè)字節(jié)組成墓猎,32位的尋址范圍是00000000~FFFFFFFF,那么最大的尋址范圍是FFFFFFFF+1赚楚。

1Byte = 8Bit

1KB = 1024Byte

1MB =1024KB

1GB=1024MB

將FFFFFFFF+1轉(zhuǎn)化成十進(jìn)制為4294967296字節(jié),4294967296 Byte/1024/1024/1024=4GB這里就回答了毙沾,一個(gè)正在運(yùn)行的程序能占4GB內(nèi)存空間。那么這4GB內(nèi)存空間是不是都可以訪問(wèn)哪宠页?答案是否定的左胞。這4GB內(nèi)存空間是一個(gè)程序能訪問(wèn)的最大范圍,真正能訪問(wèn)的是該程序已經(jīng)向操作系統(tǒng)申請(qǐng)的內(nèi)存举户,有對(duì)應(yīng)物理內(nèi)存映射的烤宙。如圖2-5-2所示。


圖2-5-2

內(nèi)存與物理內(nèi)存俭嘁、內(nèi)存條的映射關(guān)系

舉例說(shuō)明:如圖2-5-3當(dāng)前計(jì)算機(jī)只有3G內(nèi)存躺枕,一共有29個(gè)進(jìn)程,那29*4GB=116GB兄淫,這明顯不科學(xué)屯远。一個(gè)正在運(yùn)行的程序,它的最大尋址范圍是4GB捕虽,而它是虛擬內(nèi)存慨丐,只有向操作系統(tǒng)申請(qǐng)了內(nèi)存,有相對(duì)應(yīng)的物理映射泄私,我們才能使用房揭。物理上的內(nèi)存和我們使用的內(nèi)存條中間還有一層映射备闲。

介紹了內(nèi)存知識(shí),那我們?cè)撊绾问褂脙?nèi)存捅暴?

2.5.3【使用內(nèi)存】

在2.4節(jié)中介紹了MOV指令恬砂,MOV指令可以把立即數(shù)移動(dòng)到寄存器,也可以把寄存器的數(shù)據(jù)移動(dòng)到寄存器蓬痒。

在本節(jié)中的MOV指令泻骤,可以讀取內(nèi)存:

[if !supportLists]1、[endif]將立即數(shù)存入內(nèi)存中;

[if !supportLists]2梧奢、[endif]將寄存器中的數(shù)據(jù)存入到內(nèi)存中狱掂。

【注意:寬度要統(tǒng)一∏坠欤】

例1趋惨、將立即數(shù)存入到內(nèi)存中:

1、MOV BYTE PTR DS:[0x12FFC4],0x1

2惦蚊、MOV WORD PTR DS:[0x12FFC8],0x1

3器虾、MOV DWORD PTR DS:[0x12FFCC],0x1

【語(yǔ)法:MOV寬度(BYTE\WORD\ DWORD)PTR DS:[地址編號(hào)],立即數(shù)。BYTE表示寬度為一個(gè)字節(jié)蹦锋,WORD表示寬度為兩個(gè)字節(jié)兆沙,DWORD表示寬度為四個(gè)字節(jié),PTR指的是指針point晕粪,DS:段寄存器挤悉,[]里面寫(xiě)內(nèi)存編號(hào),表示已經(jīng)申請(qǐng)過(guò)的內(nèi)存巫湘。】

打開(kāi)DTDebug.exe將例1輸入到匯編窗口中昏鹃。如圖2-5-4所示尚氛。


按F8單步運(yùn)行,觀察堆棧窗口的變化洞渤,如圖2-5-5所示阅嘶。


[if !supportLists]例2、[endif]將寄存器中的數(shù)據(jù)存入到內(nèi)存中:

1载迄、MOV BYTE PTR DS:[0x12FFC4],AL

2讯柔、MOV WORD PTR DS:[0x12FFC8],CX

3、MOV DWORD PTR DS:[0x12FFCC],EDX

【語(yǔ)法:MOV寬度(BYTE\WORD\ DWORD)PTR DS:[地址編號(hào)],寄存器护昧』昶】

將例2輸入到匯編窗口中。如圖2-5-6所示惋耙。


按F8單步運(yùn)行捣炬,觀察堆棧窗口的變化熊昌,如圖2-5-7所示。


2.5.4【內(nèi)存和寄存器的區(qū)別】

寄存器:數(shù)量少湿酸,在CPU的內(nèi)部婿屹,速度極快,但是價(jià)格昂貴推溃;

內(nèi)存:數(shù)量龐大昂利,相對(duì)寄存器來(lái)說(shuō),速度慢很多铁坎,價(jià)格便宜蜂奸。


u下一節(jié)介紹內(nèi)存的五種形式。

練習(xí):

1厢呵、分別向內(nèi)存中存儲(chǔ)2個(gè)字節(jié)窝撵、2個(gè)字、2個(gè)雙字??內(nèi)存地址和內(nèi)容自己指定. ?

2襟铭、從內(nèi)存中讀取數(shù)據(jù)存儲(chǔ)到AL碌奉、AH、CX寒砖、DX赐劣、SP、EBX哩都、DI魁兼、ESI中,內(nèi)存地址自己指定.【思考一下怎么寫(xiě)】

3漠嵌、MOV WORD PTR DS:[0X0012FFC4],EAX ?對(duì)嗎咐汞?為什么?

MOV AH,BYTE PTR DS : [0x0024ffC6]可以這樣寫(xiě)嗎儒鹿?

4化撕、多練習(xí)MOV指令 。 ?

o

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末约炎,一起剝皮案震驚了整個(gè)濱河市植阴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌圾浅,老刑警劉巖掠手,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異狸捕,居然都是意外死亡喷鸽,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)府寒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)魁衙,“玉大人报腔,你說(shuō)我怎么就攤上這事∑实恚” “怎么了纯蛾?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)纵隔。 經(jīng)常有香客問(wèn)我翻诉,道長(zhǎng),這世上最難降的妖魔是什么捌刮? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任碰煌,我火速辦了婚禮,結(jié)果婚禮上绅作,老公的妹妹穿的比我還像新娘芦圾。我一直安慰自己,他們只是感情好俄认,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布个少。 她就那樣靜靜地躺著,像睡著了一般眯杏。 火紅的嫁衣襯著肌膚如雪夜焦。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天岂贩,我揣著相機(jī)與錄音茫经,去河邊找鬼。 笑死萎津,一個(gè)胖子當(dāng)著我的面吹牛卸伞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锉屈,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼瞪慧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了部念?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤氨菇,失蹤者是張志新(化名)和其女友劉穎儡炼,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體查蓉,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乌询,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了豌研。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妹田。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡唬党,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鬼佣,到底是詐尸還是另有隱情驶拱,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布晶衷,位于F島的核電站蓝纲,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏晌纫。R本人自食惡果不足惜税迷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望锹漱。 院中可真熱鬧箭养,春花似錦、人聲如沸哥牍。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)砂心。三九已至懈词,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辩诞,已是汗流浹背坎弯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留译暂,地道東北人抠忘。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像外永,于是被迫代替她去往敵國(guó)和親崎脉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

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