PC定址方式遺留問題 A20位址線

2021-05-01 04:09:53 字數 833 閱讀 5932

在8086/8088cpu上,總共有20根位址線,可以定址1m記憶體空間。但是8086的定址方式卻事實上可以訪問到1m+64k的位址空間。想象一下,當段暫存器的值為fff0h,而斷內偏移為1000h的時候,通過段位址*16+偏移位址計算出來的實體地址是100f00h,而這已經超過了1m的位址範圍!但是由於8086/8088只有20根位址線,因此,第20位被丟失了。實際上這個段位址和偏移位址的組合訪問的實際實體地址是0xf00。

後來出現了80286cpu,而286有24根位址線。所以,在286上,上述的段位址和偏移位址的組合實際上會訪問1m以上的記憶體。這導致了80286cpu和8086cpu的不相容。因此,ibm在推出80286的pc的時候,在主機板上做了乙個開關,當這個開關沒有開啟的時候,cpu的第20根位址線會被強制設為0,就像這條位址線不存在一樣。這樣就和8086/8088一樣了。

但是當我們切換到保護模式的時候,我們必須用全所有的32根位址線,所以我們必須開啟主機板上這個開關。下面的**可以用來開啟a20位址線

call    empty_8042

mov     al,d1h

out     64h,al

call    empty_8042

mov     al,dfh

out     60h,al

call    empty_8042

empty_8042:

dw      00ebh,00ebh //延時

in      al,64h

test    al,2h          

jnz     empty_8042     

ret(上述**摘自linux0.11源**,我將其改寫成了masm 語法)

專案遺留問題

dsoframer控制項的問題很多,主要是不穩定 多執行緒控制,執行緒等待結果 eventwaithandler是不行的,它只是阻塞?可以了,但是就怕出錯,占用了資源 分隔符,是可以做的,但有的中間交工證書,多了一行,不知道咋回事 列印功能,是個問題 橫向縱向的問題,是不是個問題呢?需要準備的程式 ...

資料遺留問題

1 遊戲專題就沒有更新工具,只能手動打指令碼,一次次去打,整不起。陳麗月拒絕打指令碼。4000多個了,也需要乙個按分頁方式提供的介面。李政言 2 精品導學和精品作業與阿里雲上對不上?也是同步兩次,第一次沒好使,第二次就好使了。有地方少兩個,有地方少三個,不一定。3 乙個版本下面,它的資料量少於阿里雲...

UML遺留問題總結

這是自己的思維導圖 1.定義看 1 泛化 是類元的 一般描述和具體描述,具體描述建立在一般描述之上,並對其進行了拓展 舉個例子,貸款就是一般性的描述,房貸就是一種具體的貸款,貸款的要求一般有借貸人,擔保人 都算貸款的條件描述 就可以了,房貸還要考慮房子的這個因素,便做到了拓展 2 繼承 利用已有的資...