計算機彙編語言中的偏移量定義為:把存儲單元的實際位址與其所在段的段位址之間的距離稱為段内偏移,也稱為“有效位址或偏移量”。
段位址左移四位,與有效位址相加,就構成了邏輯位址。一般而言,段位址是cpu自己獨立編制的,但是偏移量是程式員編寫的。偏移量就是程式的邏輯位址與段首的內插補點。
在早期的8086中位址線是20位的,而段位址是16位。在十六進制下就是4位。這樣一個段寄存器就不能完整的描述出記憶體的位址。是以就和通用寄存器配用。偏移量存在通用寄存器中,段位址則存在段寄存器中。而位址首的五位(十六進制下,二十位址線是五位)有個特點,即末尾總是零,是以就取前四位當做段位址。正好是段位址的存儲空間大小。是以在上圖中,按照位址存儲時的分法,倒過來組合,即左移四位(二進制下,十六進制是一位。),比如段位址為1001H(H十六進制之意),左移一位(乘以16),即補零變為10010H,假設偏移位址是1010H,則實際實體位址就是11100H了。形象來說,段位址是頭,偏移量是實際位置相對頭的位置。
在實模式中,記憶體比保護模式中的結構更令人困惑。記憶體被分割成段,并且,操作記憶體時,需要指定段和偏移量。
段-寄存器這種格局是早期硬體電路限制留下的一個傷疤。位址總線在當時有20-bit。然而20-bit的位址不能放到16-bit的寄存器裡,這意味着有4-bit必須放到别的地方。是以,為了通路所有的記憶體,必須使用兩個16-bit寄存器。
這一設計上的折衷方案導緻了今天的段-偏移量格局。最初的設計中,其中一個寄存器隻有4-bit有效,然而為了簡化程式,兩個寄存器都是16-bit有效,并在執行時求出權重和來辨別20-bit位址。
偏移量是16-bit的,是以,一個段是64KB。下面的圖可以幫助了解20-bit位址是如何形成的:
段-偏移量辨別的位址通常記做 段:偏移量 的形式。
例如:線切割工藝中,計算钼絲偏移量,即钼絲的直徑.
備注:轉自http://baike.baidu.com/view/1254177.htm
***********************************
段位址
本詞條由“科普中國”百科科學詞條編寫與應用工作項目稽核
。
段位址是針對記憶體的分段而言的,将每一段的段首位址定義為段位址.段位址的存在是由系統的分段存儲決定的,通過段位址和偏移位址就能對資料進行尋訪。
中文名
别 稱
段内相對于段起始位址的偏移值
适用領域範圍
存儲器
第二段的位址
範圍就是256-511
偏移位址(SA)是指段内相對于段起始位址的偏移值,例如一個存儲器的大小是1KB,可以把它分為4段,第一段的位址範圍就是0—255,第二段的位址範圍就是256-511,以此類推。這些段内的偏移位址就是在0-255的範圍内的。
而計算它們的實體位址隻需要把段位址左移4位,再加上偏移位址就可以了。
備注:轉自http://baike.baidu.com/view/883213.htm
**********************************
偏移位址
鎖定
偏移位址也稱為偏移量,由于8086/8088CPU内部的ALU隻能進行16位的運算,而8086/8088有20條位址線,直接尋址能力1MB。是以,8086/8088所使用的20位實體位址,是由相應的段位址加上偏移位址組成的。
外文名
Offset Address
應用學科
計算機
1實體位址計算方法
定義:偏移位址就是計算機裡的記憶體分段後,在段内某一位址相對于段首位址(段位址)的偏移量. 如8086存儲系統中 20位的實體位址(就是資料存儲的實際位址)=16位的段基位址*16+16位的偏移量
全稱:偏移位址(Offset Address)或有效位址(EA,Effective Address)
8086/8088有20條位址線,它的直接尋址能力為1MB。也就是在一個系統中可以有多達1MB的存儲器,位址從00000H—FFFFFH。給定任意一個20位實體位址,就可以從中取出需要的指令和操作數。但是8086/8088CPU隻能進行16位運算。與位址有關的寄存器SP、IP、BP、SI、DI也都是16位的,是以對位址的運算也隻能是16位的。對于8086/8088來說,無論采用哪種尋址方式,尋找操作數的範圍最大是2^16,也就是64K。如何才能形成20位的實體位址呢。系統先将1MB存儲器以64KB為範圍分成若幹段。在尋址一個具體實體位址時,由一個基本位址再加上由SP或IP等可由CPU處理的16位偏移量來形成20位實體位址。
當系統需要産生一個20位位址的時候,一個段寄存器會自動被選擇。且自動左移4位再與一個16位位址偏移量相加産生所需的20位位址[1] 。
例如:資料段DS寄存器的值=0088H
偏移位址=22H
那麼生成的20位實體位址等于 00880H+22H=008A2H
備注:轉自http://baike.baidu.com/view/883224.htm