日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于A20

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于A20 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

A20是什么

1981年8月,IBM 公司最初推出的個人計算機所使用的 CPU 是 Intel 8088。在該微機中地址線只有 20 根(A0~A19)。當時,計算機的 RAM 只有幾百 KB 或不到 1MB 時,20 根地址線已足夠用來尋址。其所能尋址的最高地址是0xffff:0xffff,即0x10ffef。對于超出 0x100000(1MB)的尋址地址, 將默認回卷到0x0ffef。

IBM 公司于 1985 年引入 AT 機時,使用的是 Intel 80286 CPU,具有 24 根地址線,最高可尋址 16MB,并且有一個與 8088 完全兼容的實模式運行方式。

然而,在尋址值超過 1MB 時它卻不能象 8088 那樣實現地址的回卷。但是當時已經有一些程序是利用這種地址環繞機制進行工作的。為了實現完全的兼容性,IBM 公司發明了一種方法——使用一個開關來開啟或禁止地址線的比特位20到23。

由于當時的 8042 鍵盤控制器上恰好有空閑的端口引腳(輸出端口P2,引腳名是 P21 ),于是便使用了該引腳來作為與門控制這個地址比特位。該信號被稱為 A20。如果它為零,則比特 20 及以上地址都被清除。

在機器啟動時,默認條件下,A20 地址線是禁止的,所以操作系統必須使用適當的方法來開啟它。但是由于各種兼容機所使用的芯片集不同,要做到這一點是非常麻煩的,通常要在幾種控制方案中選擇。

怎樣控制A20

方案一:鍵盤控制器

對 A20 信號線進行控制的常用方法是通過設置鍵盤控制器的端口值。
比如以下代碼可以開啟A20

call empty_8042mov al,#0xD1 ! command writeout #0x64,alcall empty_8042mov al,#0xDF ! A20 onout #0x60,alcall empty_8042empty_8042:.word 0x00eb,0x00eb !機器碼,跳轉到下一句,為了延時in al,#0x64 ! 8042 status porttest al,#2 ! is input buffer full?jnz empty_8042 ! yes - loopret

方案二:端口0x92

有些操作系統將 A20 的開啟和禁止作為實模式與保護模式之間進行轉換的標準過程的一部分。由于鍵盤控制器的速度很慢,因此就不能使用鍵盤控制器對 A20 線來進行操作。為此引進了一個 A20 快速門選項(Fast Gate A20),它使用 I/O 端口 0x92 來處理 A20 信號線。

比如

in al,0x92 ;南橋芯片內的端口 or al,0000_0010Bout 0x92,al ;打開A20

方案三:INT 15 中斷

/** 打開A20* 返回結果:* 成功:CF=0, AH=0* 失敗:CF=1, AH=0x01 鍵盤控制器處于secur模式* AH=0x86 功能不支持*/mov ax, 0x2401int 0x15

方案四:0xee端口

還有一種方式是通過讀 0xee 端口來開啟 A20 信號線,寫該端口則會禁止 A20 信號線。

in al,0xee ;開啟A20

總結

以上是生活随笔為你收集整理的关于A20的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。