邏輯定址
邏輯定址是將硬碟所有扇區認為是一個柱形,扇區從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的倍數。