本教程目錄 http://www.zg4o1577.cn/mcu/2619.html
思考了這么久,總算想清楚了這章的主題,同樣,很重要(沒有哪一章是不重要的!).
存儲器,指電腦里用來存儲數據的東西.比較常見的有:內存,硬盤,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進行數學計算后,根據不同的計算結果往里面輸入數據,從這里能看出代碼的上一步計算結果是不是有特殊含義.