天天看點

8086存儲器編址和IO編址



1)存儲器編址

由于微處理器内部的寄存器和ALU都是16位的,為了友善20位的位址管理,在8086對存儲器管理的設計中,采用了分段管理的技術。

采用分段方法進行編址的優點:

減少指令長度,提高指令執行速度。

為程式的浮動裝配創造了條件。

(1)實體位址和邏輯位址

對應每個實體存儲單元都有一個唯一的20位編号,就是實體位址,從00000H~FFFFFH。

使用者程式設計時,采用邏輯位址,形式為: 段位址 : 偏移量

一個存儲單元具有一個唯一的實體位址,但具有多個邏輯位址。

(2)邏輯位址轉換為實體位址

将邏輯位址中的段位址左移4位,加上偏移量就得到20位實體位址。

(3)段寄存器使用時的一些基本約定

這裡寫圖檔描述

(4)段配置設定方式

8086對邏輯段要求:

每個段最大限制為64KB

段位址的低4位為0000B

各段可以獨立占用64KB存儲區,各段也可以允許重疊

1MB空間最多能分成64K段

1MB空間最少能分成16個段

(5)8086系統幾個固定使用的區域

00000H~003FFH:中斷向量表

B0000H~B0F9FH:單色顯示器的顯示緩沖區

B8000H~BBF3FH:彩色顯示器的顯示緩沖區

FFFF0H~FFFFFH:無條件轉移指令

2)I/O編址

8086允許有65536(64K)個8位的I/O端口,兩個編号相鄰的8位端口可以組合成一個16位的端口。(BHE#=0、A0=0)

8086的I/O可采用獨立編址方式

- I/O位址空間:64K

- 端口位址範圍:0000~FFFFH

- 8位/16位端口

- 對I/O端口操作時,需要用專門的指令進行操作,并且隻能夠通過累加器(AL或AX)來完成。

8086的I/O亦可采用統一編址方式

繼續閱讀