1.首先區分尋址范圍與尋址空間
尋址范圍:是一個數字范圍,無單位;
尋址空間:能夠尋址的最大容量;
例題:
設有一個1MB容量的存儲器,字長32位,問:按字節編址,字編址的尋址范圍以及各自的尋址范圍大小?
如果按字節編址,則
1MB = 2^20B 2^20B/1B = 2^20
地址范圍為0~(2^20)-1,也就是說需要二十根地址線才能完成對1MB空間的編碼,所以地址寄存器為20位,尋址范圍大小為2^20=1M
如果按字編址,則
1MB=2^20B 1字=32bit=4B
(注意:字長是32位,就是指1字=32bit,該信息只有在按字編址時才有用。這里的字長說的是存儲字長)
2^20B/4B = 2^18
地址范圍為0~2^18-1,也就是說我們至少要用18根地址線才能完成對1MB空間的編碼。因此按字編址的尋址范圍是2^18
尋址方法:
尋址范圍:
立即尋址:直接放一個數
直接尋址:A的字長
間接尋址:存儲字長=?(機器字長)
相對尋址:(PC附近)A的字長
基址尋址:
變址尋址:機器字長=存儲字長
注意:
機器字長:CPU一次能處理數據的位數,通常與CPU的寄存器位數有關。
存儲字長:存儲器中一個存儲單元(存儲地址)所存儲的二進制代碼的位數,即存儲器中的MDR的位數。
指令字長:計算機指令字的位數。
數據字長:計算機數據存儲所占用的位數。
通常早期計算機:存儲字長 = 指令字長 = 數據字長。所以訪問一次可取一條指令或一個數據
隨着計算機應用范圍的不斷擴大,三者可能各不相同,但它們必須是字節的整數倍。