16位機情況:
由於PC機的存儲器地址是由段地址和偏移地址組合而成,每個段不能超過64K字節地址,因此同一個段內的地址存取,
僅用偏移地址就可以實現,用指針時,16位就可以了。稱爲近程指針nea*,當要在另一個段內取數據時,就要跨越段,
即要指明存取段的段地址和偏移地址,這時段地址寄存器所存段地址要變,因此在使用指針指向另一個段內地址時,
就要用32位表示(即段地址:偏移地址),這類指針,稱爲遠程指針,是***型.
far*爲遠程指針
遠程指針是指32位的指針,它表示段地址:偏移地址,如定義遠程指針P指向B500段的2號地址,即B500:0002,則可寫作:
cha* far*p=(cha* far*)0xB5000002;
因而用遠程指針可以指向任何的數據段內地址,在大數據內存模式下,當跨越段進行數據存取時(即存取超過64K的數據),可以採用
遠程指針。當使用far型指針時,因要進行跨段尋址,數據段寄存器的值要更換,因而加長了程序的執行時間。
另外遠程指針的值在進行加減時,只有偏移的地址部分進行運算,段地址不參加運算,即段地址不變,因此會出現折回現象。