定址

定址

定址是數據恢復技術的基礎,是定位數據和扇區的關鍵。定址這個概念比較抽象,簡單的說是磁頭在碟片上定位數據的一個過程。如果你想找到你的計算機中的一個檔案,你可能會在Windows中先打開我的電腦、分區、資料夾,再打開你要找的檔案。這是表面的尋找檔案的過程,而磁頭在碟片的尋找過程就是定址。 定址在數據恢復中為什麼非常重要?因為當數據出現丟失的情況後,你在我的電腦、分區、資料夾下就找不到這個檔案了,甚至找不到資料夾和分區。 計算機有多種定址方式,如立即數定址方式,暫存器定址,存儲器定址方式,與I/0連線埠有關的定址方式,又包括直接連線埠定址和間接連線埠定址。

邏輯定址

邏輯定址是將硬碟所有扇區認為是一個柱形,扇區從0開始一直排到無窮大。當然硬碟的容量決定扇區的總數。在邏輯定址中,某一個扇區的描述就是某某某某(數字)扇區。

物理定址

物理定址也稱C.H.S(Cylinder、Head、Sector)定址。Cylinder、Head、Sector這三個參數在很多硬碟表面的標籤上都有標註其數值。這是硬碟容量大小的計算基礎。物理定址中對某扇區的表述為某某Cylinder某某Head的某某Sector。

硬碟容量=盤面數×柱面數×扇區數×512位元組。

定址方式簡介

立即數定址方式

運算元直接存放在指令中,緊跟在操作碼之後的定址方式就是立即數定址方式。例如:MOV AX,2345H MOV AL,0EH 。

暫存器定址

運算元存放在CPU的記憶體暫存器時,可在指令中指出暫存器名,這就是暫存器定址方式。例如:MOV AX,BX ;ADD AX,BX。

存儲器定址方式

8086指令系統提供了以下5種針對存儲器的定址方式。直接定址、暫存器間接定址、暫存器相對定址、基址加變址定址和相對基址加變址定址。用於說明運算元所在存儲單元的地址。由於匯流排接口單元BIU能根據需要自動引用段暫存器得到段值,所以這五種方式也就是確定存放運算元的存儲單元有效地址EA的方法。有效地址EA是一個16位的無符號數,在利用這五種方法計算有效地址時,所得的結果認為是一個無符號數。

(1).直接定址: 指令中給出的地址碼即為運算元的有效地址,就是直接定址方式

(2).暫存器間接定址方式

(3).暫存器相對定址方式

(4).基址變址定址方式

(5).相對基址變址定址方式

定址的區別和套用

邏輯定址方式和物理定址方式目前都在使用,很多軟體也都可以用兩種定址方式進行定位。不過,由於物理定址方式相對比較複雜,採用三數字進行定位,硬碟大小不同數值上限不同,起始不同(Cylinder和Head從0起始,Sector從1起始)等等原因,在數據恢復技術中更多的使用邏輯定址方式完成定位。

定址操作方法

就是指定指令要進行操作的地址。給定指令操作的地址方法,就是定址方法。完整的一條指令,應該包含指令符+運算元(當然不包括那些單指令,比如NOT等)。其中的運算元是指令要執行的目標,也就是指令要進行操作的地址。

我們知道,在PLC中劃有各種用途的存儲區,比如物理輸入輸出區P、映像輸入區I、映像輸出區Q、位存儲區M、定時器T、計數器C、數據區DB和L等,同時我們還知道,每個區域可以用位(BIT)、位元組(BYTE)、字(WORD)、雙字(DWORD)來衡量,或者說來指定確切的大小。當然定時器T、計數器C不存在這種衡量體制,它們僅用位來衡量。由此我們可以得到,要描述一個地址,至少應該包含兩個要素:1、存儲的區域

2、這個區域中具體的位置比如:AQ2.0

其中的A是指令符,Q2.0是A的運算元,也就是地址。這個地址由兩部分組成:Q:指的是映像輸出區; 2.0:就是這個映像輸出區第二個位元組的第0位。由此,我們得出,一個確切的地址組成應該是:〖存儲區符〗〖存儲區尺寸符〗〖尺寸數值〗.〖位數值〗。

分類:

直接定址,簡單的說,就是直接給出指令的確切運算元. 直接定址方式常用於處理記憶體單元的數據,其運算元是記憶體變數的值,該定址方式可在64K位元組的段內進行定址。注意:立即定址方式和直接定址方式的書寫格式的不同,直接定址的地址要寫在括弧“[”,“]”內。在程式中,直接地址通常用記憶體變數名來表示,如:MOV BX, VARW,其中,VARW是記憶體字變數。

間接定址就是間接的給出指令的確切運算元。間接定址方式計有兩大類型:存儲器間接定址和暫存器間接定址。

存儲器間接定址指針,是作為指定的存儲區域的確切數值單元來運用的。也就是說,指針不包含區域標識,它只是指明了一個數值。

存儲器間接定址的地址給定格式是:地址標識符+指針。指針所指示存儲單元中所包含的數值,就是地址的確切數值單元。

存儲器間接定址具有兩個指針格式:單字和雙字。

單字指針是一個16bit的結構,從0-15bit,指示一個從0-65535的數值,這個數值就是被定址的存儲區域的編號。

雙字指針是一個32bit的結構,從0-2bit,共三位,按照8進制指示被定址的位編號,也就是0-7;而從3-18bit,共16位,指示一個從0-65535的數值,這個數值就是被定址的位元組編號。

指針可以存放在M、DI、DB和L區域中,也就是說,可以用這些區域的內容來做指針。

單字指針和雙字指針在使用上有很大區別。單字指針的存儲器間接定址只能用在地址標識符是非位的場合;雙字指針由於有位格式存在,所以對地址標識符沒有限制。也正是由於雙字指針是一個具有位的指針,因此,當對位元組、字或者雙字存儲區地址進行定址時,必須確保雙字指針的內容是8或者8的倍數。

相關搜尋

熱門詞條

聯絡我們