新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 第3章 存儲器(X86匯編教程)

        第3章 存儲器(X86匯編教程)

        作者: 時間:2016-12-01 來源:網絡 收藏
        思考了這么久,總算想清楚了這章的主題,同樣,很重要(沒有哪一章是不重要的!).
        存儲器,指電腦里用來存儲數據的東西.比較常見的有:內存,硬盤,U盤,記憶卡.光盤等各種存儲器.

        存儲器的存儲數據方式分
        緩存,儲存在里面的數據關機就會消失,一般用來放些隨時要用的數據,比如正在運行的代碼.計算到一半的數學算式.正在播放的音樂,正在看的視頻(當然,這些數據大多播放完畢就會從緩存中刪除)
        保存,數據關機后仍然存在,存放需要保存的數據,游戲,音樂,視頻之類的.
        2種,緩存一般很小,比如內存,只有幾G而已.但數據操作速度超快.一秒鐘五十億上下~
        保存的一般很大,硬盤,成百上千G的,速度慢了點.一秒只有幾十萬上下(據說有種叫做固態硬盤的,一個500G要2千多RMB,操作大文件速度超快(當然,不會快過內存),原理:那是用U盤拼起來的,無數個U盤一起存放文件速度當然快)

        存儲器的讀寫權限分
        可讀寫(可以自由讀寫數據)
        只讀(只能讀取數據,不能寫入)
        只寫(只能寫入數據不能讀取)
        這3種(一些特殊的就不提了),硬盤和內存是可讀寫的(內存特殊點,有個叫做保護模式的東東,內存有些地方不能讀寫),只讀,光盤就是只讀存儲器的典范(什么?你說刻錄光盤?都說特殊的不提了)



        這里,介紹一種你可能沒聽過的存儲器----寄存器
        它存在于CPU里面,不同的CPU有不同的寄存器.這里講的是X86匯編教程,我就拿80186(X86第1個版本)的寄存器來說吧,寄存器是最小的存儲器,80186的寄存器最大只能存儲一個字形數據(16比特bit,2個字節byte).當然,寄存器不止一個,有十來個,每個都有專門的名字,

        最常用的就是AX ,BX,CX,DX,這4個了,這4個寄存器又叫做通用寄存器,是16位的,用來進行數學計算儲存數據,是寄存器里面特殊作用最少的一組寄存器(專門用來儲存數學計算中間結果的.如果特殊作用多了,那豈不麻煩?),這4個寄存器還能分別分成2個8位寄存器使用,AX能分成AH,AL,BX能分成AH,AL 依次類推,AH是AX的高8位,AL是AX的低8位,什么是高位低位呢?這么說把.一個2位十進制數.15,其中,1是十位數,5是個位數,1就是高位,5就是低位

        CPU和必須依靠內存才能運作,因為代碼(詳細點說應該是機器碼) 是放在內存里的,CPU在內存中讀取代碼進行計算.操作內存常用的段寄存器:SS,CS,DS,ES(全為16位)和偏移寄存器:IP,SP(16位)在 80186里,操作內存一定要2個寄存器配合(以后再詳解).其中,CS和IP常配合指向即將執行的代碼,SS和SP則指向內存一個叫做堆棧的地方,能和段寄存器配合進行內存尋址的不止IP和SP,還有SI,DI,BP(也是16位)以及通用寄存器.

        SI,DI,BP和通用寄存器差不多,但有些特殊作用(以后講解)

        PSW,標志寄存器,CPU進行數學計算后,根據不同的計算結果往里面輸入數據,從這里能看出代碼的上一步計算結果是不是有特殊含義.


        關鍵詞: 存儲器X86匯編教

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 石台县| 乐东| 汪清县| 澄迈县| 奎屯市| 庆阳市| 商水县| 桐城市| 峨眉山市| 巫山县| 铜山县| 南江县| 延边| 垣曲县| 鸡东县| 凯里市| 榆中县| 娱乐| 平顺县| 赤水市| 钟祥市| 海林市| 镇原县| 濮阳县| 通榆县| 西乌| 大渡口区| 广州市| 涟水县| 体育| 砀山县| 乌苏市| 青岛市| 察雅县| 呼伦贝尔市| 门源| 双鸭山市| 襄城县| 东明县| 白银市| 黄骅市|