存儲器
存儲器(Memory)是現(xiàn)代信息技術(shù)中用于保存信息的記憶設(shè)備。其概念很廣,有很多層次,在數(shù)字系統(tǒng)中,只要能保存二進制數(shù)據(jù)的都可以是存儲器;在集成電路中,一個沒有實物形式的具有存儲功能的電路也叫存儲器,如RAM、FIFO等;在系統(tǒng)中,具有實物形式的存儲設(shè)備也叫存儲器,如內(nèi)存條、TF卡等。
計算機中全部信息,包括輸入的原始數(shù)據(jù)、計算機程序、中間運行結(jié)果和最終運行結(jié)果都保存在存儲器中。它根據(jù)控制器指定的位置存入和取出信息。有了存儲器,計算機才有記憶功能,才能保證正常工作。計算機中的存儲器按用途存儲器可分為主存儲器(內(nèi)存)和輔助存儲器(外存),也有分為外部存儲器和內(nèi)部存儲器的分類方法。外存通常是磁性介質(zhì)或光盤等,能長期保存信息。內(nèi)存指主板上的存儲部件,用來存放當(dāng)前正在執(zhí)行的數(shù)據(jù)和程序,但僅用于暫時存放程序和數(shù)據(jù),關(guān)閉電源或斷電,數(shù)據(jù)會丟失。
尋址
尋址是數(shù)據(jù)恢復(fù)技術(shù)的基礎(chǔ),是定位數(shù)據(jù)和扇區(qū)的關(guān)鍵。尋址這個概念比較抽象,簡單的說是磁頭在盤片上定位數(shù)據(jù)的一個過程。如果你想找到你的計算機中的一個文件,你可能會在Windows中先打開我的電腦、分區(qū)、文件夾,再打開你要找的文件。這是表面的尋找文件的過程,而磁頭在盤片的尋找過程就是尋址。 尋址在數(shù)據(jù)恢復(fù)中為什么非常重要?因為當(dāng)數(shù)據(jù)出現(xiàn)丟失的情況后,你在我的電腦、分區(qū)、文件夾下就找不到這個文件了,甚至找不到文件夾和分區(qū)。
計算機有多種尋址方式,如立即數(shù)尋址方式,寄存器尋址,存儲器尋址方式,與I/0端口有關(guān)的尋址方式,又包括直接端口尋址和間接端口尋址。
存儲器尋址方式有哪些?
存儲器尋址方式的操作數(shù)存放在主存儲器中,用其所在主存的位置表示操作數(shù)。在這種尋址方式下,指令中給出的是有關(guān)操作數(shù)的主存地址信息。8088的存儲器空間是分段管理的。程序設(shè)計時采用邏輯地址;由于段地址在默認(rèn)的或用段超越前綴指定的段寄存器,所以采用偏移地址,稱之為有效地址(Effective Address, EA) 1. 直接尋址
在這種尋址方式下,指令中直接包含了操作數(shù)的有效地址,跟在指令操作碼之后。其默認(rèn)的段地址在DS段寄存器中,可以采用段超越前綴。
例 將數(shù)據(jù)段中偏移地址2000H處的內(nèi)存數(shù)據(jù)送至AX寄存器。 MOV AX, [2000H]
該指令中給定了有效地址2000H, 默認(rèn)與數(shù)據(jù)段寄存器DS一起構(gòu)成操作數(shù)所在存儲單元的物理地址。
如果
DS=1429H,則操作數(shù)所在的物理地址為
1429H*16+2000H=16920H. 該指令的執(zhí)行結(jié)果是將16920H單元的內(nèi)容傳送至AX寄存器,其中,高字節(jié)內(nèi)容送AH寄存器,低字節(jié)內(nèi)容送AL寄存器。
MOV AX, [2000H];指令代碼:A1 00 20
例: 將附加段中偏移地址2000H處的內(nèi)存數(shù)據(jù)送至AX寄存器。 MOV AX, ES:[2000H]; 指令代碼:26 A1 00 20
變量指示內(nèi)存的一個數(shù)據(jù),直接引用變量就是采用直接尋址方式。變量應(yīng)該在數(shù)據(jù)段進行定義,常用的變量定義偽指令DB和DW分別表示字節(jié)變量和字變量,例如
WVAR DW 1234H; 定義字變量WVAR,它的初值是1234H 這樣,標(biāo)示符WVAR表示具有初值1234H的字變量,并由匯編程序為它內(nèi)存分配了兩個連續(xù)的字節(jié)單元。假設(shè)它在數(shù)據(jù)段偏移地址是0010H。
例:將數(shù)據(jù)段的變量WVAR(即該變量名指示的內(nèi)存單元數(shù)據(jù))送至AX寄存器。
MOV AX, WVAR; 指令功能:
上述指令實質(zhì)就是如下指令:
MOV AX, [0010H]; 指令代碼: 代碼:26 A1 00 20
AX=1234H
堆棧操作指令
堆棧是一個“先進后出”的主存區(qū)域,使用SS段寄存器記錄段地址;堆棧只有一個出口,即當(dāng)前站頂,用堆棧指針寄存器SP指定堆棧站頂?shù)钠频刂贰?/p>
堆棧操作的對象只能是字操作。進站時,SP向低地址移動兩個字節(jié)單元以指向新的棧頂,然后數(shù)據(jù)的低字節(jié)于存放低地址,高字節(jié)存放于高地址。出棧時,字從棧頂彈出,低地址字節(jié)送低字節(jié),高地址字節(jié)送高地址,SP相應(yīng)向高地址移動兩個字節(jié)單元。
MOV ax, 7812H
PUSH ax; 將AX內(nèi)容推入堆棧(如圖1) POP AX;將當(dāng)前堆棧內(nèi)容彈給AX(如圖2) PUSH [2000H] POP WVAR
堆棧段是程序不可或缺的一個內(nèi)存區(qū)。堆??捎脕砼R時存放數(shù)據(jù),以便隨時恢復(fù)它們。堆棧常用于寄存器的保護以及子程序間的參數(shù)傳遞。
評論
查看更多