當前位置:首頁 » 服務存儲 » 8086的存儲器分體結構
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

8086的存儲器分體結構

發布時間: 2023-02-16 17:59:06

① 8086系統中存儲器採用什麼結構用什麼信號來選中存儲體

8086採用的是分段式存貯結構

8086的地址線為20位,最大定址空間為2~20=1 MB。8086內部的寄存器都是16位,對地址的運算也是16位,而16位的最大定址范圍為2~16=64
由此可以知道其需要4個段地址來定址
4個段地址的寄存器分別是:

代碼段寄存器:CS(Code Segment);

數據段寄存器:DS(Data Segment);

堆棧段寄存器:ss(stack Segment);

附加段寄存器:ES(Extra Segment)。

他是通過m/io信號的電平高低來決定是進行讀存貯器(m信號)和輸入輸出(io信號)的

② 在8086系統中有幾個可定址空間各有多大用什麼控制信號來區分

寄存器是16位的,例如AX,BX,SI,DI都是16位的,它們能表示的地址碼所以只有16位的。2的16次方等於64K,這是我們作為程序編寫者能通過寄存器直接訪問的內存空間。而8086/8088CPU提供的地址匯流排有20位,2的20次方等於1M,這是CPU它自己能訪問的最大內存空間。
這就有個矛盾了:CPU能訪問1M內存,而寄存器卻只能表示64K內存大小。所以就引入段地址和偏移地址的概念。把這1M 的內存空間分成64K大小的一段段,指定哪一段,然後再在這個段的開始加上「偏移地址」,這不就可以訪問1M內存的任意空間了?
段地址怎麼得到的問題:
比如在匯編數據段某處聲明了某個字元變數 STR
MOV DX,SEG STR
通過SEG 語句則可把STR所在段地址取出來,送給DX.

一上內容希望對你有幫助!

③ 8086/8088如何進行奇偶存儲體的選擇

8086系統中1M位元組的存儲器地址空間實際上分成兩個512K位元組的存儲體—— 「偶存儲體」和「奇存儲體」,偶存儲體同8086的低8位數據匯流排D0~D7相連,奇存儲體同 8086的高8位數據線D8~D15相連,地址匯流排的A1~A19同兩個存儲體中的地址線A0~A18 相連,最低位地址線A0和「匯流排高允許」BHE*用來分別選擇偶存儲體和奇存儲體。這種連 接方法稱為「奇偶分體」。

32位windows操作系統一樣可以在實模式下運行,你開的一個dos窗口就是一個實模式
不過他可以模擬多個實模式
16位寄存器都還在,為什麼不支持?

奇偶分體吧LZ說的。

④ 8086存儲器組織

(1)是不對的 A0是地址線的最後一位 A0=0是偶地址 A0=1是奇地址
8086的引腳上AD0就是A0和D0 分時復用的 意思是一個引腳有兩個功能 依靠時間來區別

⑤ 匯編8259A中奇地址和偶地址問題,加分

對8259A初始化寫ICW1~4時是按照先後順序來寫的,8259A的8位數據線接到8086的低八位數據線。由於8086的存儲器採用分體式結構,低8位數據線對應於8086存儲器中的偶地址庫,所以8259A的奇地址和偶地址都在8086存儲器的偶地址庫,即都是偶數。 初始時A=0時,對應8259A的偶地址,此時寫ICW1;然後讓A置位A=1,對應於8259A的奇地址,寫ICW2~4。我們容易陷入的誤區是以為8259A的奇地址和偶地址是按照它在8086存儲器的地址的奇偶性來區分,其實它是以A的值來區分,A=0定義為偶地址,A=1定義為奇地址。如果是8088 CPU的話,存儲器地址是連續的,則不會有這個誤會。