存儲器在CPU外,一般指硬盤选侨,U盤等可以在切斷電源后保存資料的設(shè)備,容量一般比較大然走,缺點是讀寫速度都很慢援制,普通的機械硬盤讀寫速度一般是50MB/S左右。內(nèi)存和寄存器就是為了解決存儲器讀寫速度慢而產(chǎn)生的多級存儲機制芍瑞,從20世紀(jì)50年代開始晨仑,磁芯存儲器曾一度成為主存的主要存儲介質(zhì),但從20世紀(jì)70年代開始,逐步被半導(dǎo)體存儲器所取代洪己,目前的計算機都是用半導(dǎo)體存儲器⊥椎剩現(xiàn)在的DDR2內(nèi)存的讀寫速度一般為6~8GB/S,跟機器性能也有關(guān)系答捕。
而寄存器(又稱緩存)一般是指由基本的RS觸發(fā)器結(jié)構(gòu)衍生出來的D觸發(fā)逝钥,就是一些與非門構(gòu)成的結(jié)構(gòu),一般整合在CPU內(nèi)拱镐,其讀寫速度跟CPU的運行速度基本匹配艘款,但因為性能優(yōu)越,所以造價昂貴痢站,一般好的CPU也就只有幾MB的2級緩存磷箕,1級緩存更小。使用寄存器可以縮短至零長度阵难、節(jié)省存儲空間岳枷,提高指令的執(zhí)行速度。不同的寄存器有不同的作用呜叫,如:通用寄存器(GR)用以存放操作數(shù)空繁、操作數(shù)的地址或中間結(jié)果;指令寄存器(IR)用以存放當(dāng)前正在執(zhí)行的指令朱庆,以便在指令執(zhí)行的過程中盛泡,控制完成一條指令的全部功能。
CPU計算時娱颊,先預(yù)先把要用的數(shù)據(jù)從硬盤讀到內(nèi)存傲诵,然后再把即將要用的數(shù)據(jù)讀到寄存器。最理想的情況就是CPU所有的數(shù)據(jù)都能從寄存器里讀到箱硕,這樣讀寫速度就快拴竹,如果寄存器里沒有要用的數(shù)據(jù),就要從內(nèi)存甚至硬盤里面讀剧罩,那樣讀寫數(shù)據(jù)占的時間就比CPU運算的時間還多的多栓拜。所以評價一款CPU的性能除了頻率,緩存也是很重要的指標(biāo)惠昔。
這么說吧幕与,他是CPU里面的東西,他和內(nèi)存一樣镇防,只是他存的東西小的多啦鸣,像AX他只能存二個字節(jié),不過計算機的運算的數(shù)據(jù)要靠他們來存儲起來来氧,一般他們都各自的屬性赏陵,像段寄存器饼齿,累加寄存器什么的,實際寄存器也不是很多蝙搔,我想你也知道他有多少吧缕溉,像EAX,BEX,等。只要你記得他是用來臨時用來存儲數(shù)據(jù)吃型,而他們又有特定的功能证鸥,不能相互混都用。
寄存器是CPU內(nèi)部的元件勤晚,寄存器擁有非常高的讀寫速度枉层,所以在寄存器之間的數(shù)據(jù)傳送非常快赐写。
寄存器的用途:
1.可將寄存器內(nèi)的數(shù)據(jù)執(zhí)行算術(shù)及邏輯運算鸟蜡。
2.存于寄存器內(nèi)的地址可用來指向內(nèi)存的某個位置,即尋址挺邀。
3.可以用來讀寫數(shù)據(jù)到電腦的周邊設(shè)備揉忘。
8086 有8個8位數(shù)據(jù)寄存器,
這些8位寄存器可分別組成16位寄存器:
AH&AL=AX:累加寄存器端铛,常用于運算泣矛;
BH&BL=BX:基址寄存器,常用于地址索引禾蚕;
CH&CL=CX:計數(shù)寄存器您朽,常用于計數(shù);
DH&DL=DX:數(shù)據(jù)寄存器换淆,常用于數(shù)據(jù)傳遞哗总。
為了運用所有的內(nèi)存空間,8086設(shè)定了四個段寄存器倍试,專門用來保存段地址:
CS(Code Segment):代碼段寄存器讯屈;
DS(Data Segment):數(shù)據(jù)段寄存器;
SS(Stack Segment):堆棧段寄存器易猫;
ES(Extra Segment):附加段寄存器耻煤。
當(dāng)一個程序要執(zhí)行時具壮,就要決定程序代碼准颓、數(shù)據(jù)和堆棧各要用到內(nèi)存的哪些位置,通過設(shè)定段寄存器 CS棺妓,DS攘已,SS 來指向這些起始位置。通常是將DS固定怜跑,而根據(jù)需要修改CS样勃。所以吠勘,程序可以在可尋址空間小于64K的情況下被寫成任意大小。 所以峡眶,程序和其數(shù)據(jù)組合起來的大小剧防,限制在DS 所指的64K內(nèi),這就是COM文件不得大于64K的原因辫樱。8086以內(nèi)存做為戰(zhàn)場峭拘,用寄存器做為軍事基地,以加速工作狮暑。
除了前面所提的寄存器外鸡挠,還有一些特殊功能的寄存器:
IP(Intruction Pointer):指令指針寄存器,與CS配合使用搬男,可跟蹤程序的執(zhí)行過程拣展;
SP(Stack Pointer):堆棧指針,與SS配合使用缔逛,可指向目前的堆棧位置备埃。
BP(Base Pointer):基址指針寄存器,可用作SS的一個相對基址位置译株;
SI(Source Index):源變址寄存器可用來存放相對于DS段之源變址指針瓜喇;
DI(Destination Index):目的變址寄存器,可用來存放相對于 ES 段之目的變址指針歉糜。
還有一個標(biāo)志寄存器FR(Flag Register),有九個有意義的標(biāo)志(
OF: 溢出標(biāo)志位OF用于反映有符號數(shù)加減運算所得結(jié)果是否溢出乘寒。如果運算結(jié)果超過當(dāng)前運算位數(shù)所能表示的范圍,則稱為溢出匪补,OF的值被置為1伞辛,否則,OF的值被清為0.
DF: 方向標(biāo)志DF位用來決定在串操作指令執(zhí)行時有關(guān)指針寄存器發(fā)生調(diào)整的方向夯缺。
IF: 中斷允許標(biāo)志IF位用來決定CPU是否響應(yīng)CPU外部的可屏蔽中斷發(fā)出的中斷請求蚤氏。但不管該標(biāo)志為何值,CPU都必須響應(yīng)CPU外部的不可屏蔽中斷所發(fā)出的中斷請求踊兜,以及CPU內(nèi)部產(chǎn)生的中斷請求竿滨。具體規(guī)定如下:
(1)、當(dāng)IF=1時捏境,CPU可以響應(yīng)CPU外部的可屏蔽中斷發(fā)出的中斷請求于游;
(2)、當(dāng)IF=0時垫言,CPU不響應(yīng)CPU外部的可屏蔽中斷發(fā)出的中斷請求贰剥。
TF: 狀態(tài)控制標(biāo)志位是用來控制CPU操作的,它們要通過專門的指令才能使之發(fā)生改變
SF: 符號標(biāo)志SF用來反映運算結(jié)果的符號位筷频,它與運算結(jié)果的最高位相同蚌成。在微機系統(tǒng)中前痘,有符號數(shù)采用補碼表示法,所以担忧,SF也就反映運算結(jié)果的正負(fù)號芹缔。運算結(jié)果為正數(shù)時,SF的值為0瓶盛,否則其值為1乖菱。
ZF: 零標(biāo)志ZF用來反映運算結(jié)果是否為0。如果運算結(jié)果為0蓬网,則其值為1窒所,否則其值為0。在判斷運算結(jié)果是否為0時帆锋,可使用此標(biāo)志位吵取。
AF: 下列情況下,輔助進位標(biāo)志AF的值被置為1锯厢,否則其值為0:
(1)皮官、在字操作時,發(fā)生低字節(jié)向高字節(jié)進位或借位時实辑;
(2)捺氢、在字節(jié)操作時,發(fā)生低4位向高4位進位或借位時剪撬。
PF: 奇偶標(biāo)志PF用于反映運算結(jié)果中“1”的個數(shù)的奇偶性摄乒。如果“1”的個數(shù)為偶數(shù),則PF的值為1残黑,否則其值為0馍佑。
CF: 進位標(biāo)志CF主要用來反映運算是否產(chǎn)生進位或借位。如果運算結(jié)果的最高位產(chǎn)生了一個進位或借位梨水,那么拭荤,其值為1,否則其值為0疫诽。)
以上是8086寄存器的整體概況, 自80386開始舅世,PC進入
32bit時代,其尋址方式奇徒,寄存器大小, 功能等都發(fā)生了變化, 要想學(xué)習(xí)這方面知識請參考相應(yīng)資料