BIOS岔斷向量表 來源:李雅良
INT 00H 除法溢位
INT 01H 單步執行
INT 02H 不可遮罩中斷
INT 03H 中斷點 [暗樁]
INT 04H 溢位 [INTO]
INT 05H 列印螢幕內容 [Prt Sc]
        AH=05                 50:00 [00 成功 / 01 列印中 / FF 有錯誤]
INT 06H 保留未用
INT 07H 保留未用
INT 08H 系統計時器 [18.2次/秒]
        TIMER_LOW  [0040:006C]
        TIMER_HIGH [0040:006E]
INT 09H 鍵盤中斷
INT 0AH 保留未用
INT 0BH 保留未用
INT 0CH 保留未用
INT 0DH 保留未用
INT 0EH 磁碟中斷
INT 0FH 保留未用

INT 10H 視訊I/O
        AH=00 設定視訊模式    I:AL=00 黑白,文字 [預設狀態]
                                AL=01 彩色,文字
                                AL=02 黑白,文字
                                AL=03 彩色,文字
                                AL=04 彩色,圖形
                                AL=05 黑白,圖形
                                AL=06 黑白,圖形
        AH=01 設定游標列線    I:CH    游標開始列 [00-13]
                                CL    游標結束列 [00-13]
        AH=02 設定游標位置    I:DH,DL 列[X],行[Y]
                                BH    頁數 [圖形時為00]
        AH=03 讀游標位置      I:BH    頁數 [圖形時為00]
                              O:DH,DL 列[X],行[Y]
                                CH,CL 目前游標模式
        AH=04 讀光筆位置      O:AH=00 光筆開關未壓下
                                AH=01 有效光筆值已在暫存器中
                                DH,DL 列[X],行[Y]
                                CX    掃描列數 [0-199]
                                BX    圈點行數 [0-319,639]
        AH=05 選擇目前顯示頁  I:AL    新頁的值
              [ 文字模式 ]            [模式0及1時為0-7]
                                      [模式2及3時為0-3]
        AH=06 向上捲動螢幕    I:AL    捲動列數 [0=CLS]
                                CH,CL 左上角 X,Y
                                DH,DL 右下角 X,Y
                                BH    字元屬性
        AH=07 向下捲動螢幕    I:AL    捲動列數 [0=CLS]
                                CH,CL 左上角 X,Y
                                DH,DL 右下角 X,Y
                                BH    字元屬性
        AH=08 讀取游標位置    I:BH    顯示頁
              的字元屬性      O:AL    讀取的字元
                                AH    讀取的字元屬性
        AH=09 在目前游標位置  I:BH    顯示頁
              寫入字元          BL    字元屬性/顏色
              游標不動          CX    重複次數
                                AL    將寫入的字元

        AH=0A 在目前游標位置  I:BH    顯示頁
              寫入字元          CX    重複次數
                                AL    將寫入的字元
        AH=0B 設定調色板      I:BH    背景顏色或調色板的值
              [320*200圖形]     BL=00 背景顏色
                                BL=01 調色板
        AH=0C 畫出圖點        I:AL    顏色
                                CX,DX 行,列
        AH=0D 讀取圖點        I:AL    顏色
                                CX,DX 行,列
        AH=0E 寫字元到螢幕    I:AL    寫出的字元
              游標前進          BL    屬性/顏色
                                BH    頁數
        AH=0F 讀入目前視訊狀態O:AL    目前模式
                                AH    螢幕上字元行數
                                BH    頁數

INT 11H 設備檢查  O:AX=11-- ---- ---- ---- 印表機數
                    AX=---1 ---- ---- ---- 1:有GAME I/O  0:無GAME I/O
                    AX=---- 111- ---- ---- RS-232 卡數量
                    AX=---- ---- 11-- ---- 磁碟機數量 00=1/01=2/10=3/11=4
                    AX=---- ---- --11 ---- 視訊模式 00=未用
                                                    01=40X25 B&W,COLOR CARD
                                                    10=80X25 B&W,COLOR CARD
                                                    11=80X25 B&W,MONO  CARD
                    AX=---- ---- ---- 11-- RAM      00=16K/01=32K/10=48K/11=64K
                    AX=---- ---- ---- ---1 DISK      0=沒有磁碟, 1=有磁碟

INT 12H 檢查主機板上的K數    O:AX    K數

INT 13H 磁碟I/O
        AH=00 重置磁碟系統
        AH=01 讀取磁碟狀態    O:AL=80 磁碟機不反應 [時間用盡]
                                AL=40 SEEK失敗
                                AL=20 控制器錯誤
                                AL=10 讀不到正確的CRC
                                AL=08 DMA逾位 [ >64K ]
                                AL=04 找不到指定磁區
                                AL=03 WRITE PROTECT
                                AL=02 找不到位址標記
                                AL=01 不正確的命令
        AH=02 讀磁區進記憶體  I:AL    磁區數目 [01-09]          2/3/4/
        AH=03 從記憶體寫出      ES:BX 緩衝區位址                2/3/
        AH=04 驗證磁區          ES:BX 磁區資訊                       /5
        AH=05 格式化磁軌        CH    磁軌號碼 [00-39]          2/3/4/5
                                CL    磁區號碼 [01-09]          2/3/4
                                DH    磁頭號碼 [00-01]          2/3/4/5
                                DL    磁碟號碼 [00-03]          2/3/4/5
                              O:AL    已讀取磁區的數量          2/3/4
                                CF=00 / AH=00     作業成功      2/3/4/5
                                CF=01 / AH=狀態   作業失敗  [狀態同AH=01]
                              *:[0000:0078-007B]  指向磁碟機參數表
                                [0000:0522-052C]  一般位址


INT 14H 通訊I/O
        AH=00 初使化          I:DX    串列埠號碼 [ 0 = COM1 / 1 = COM2 ]
              串列埠參數        AL    參數列 [如下表]
                              O:AX    串列埠狀態 [同功能3]

 Bit 7 6 5 : 傳輸速率   Bit 4 3 : 位元檢核 Bit 2 : 停止位元 Bit 1 0 : 字元大小
 ---------------------- ------------------ ---------------- ------------------
     0 0 0 =   100 Baud     0 0 = 無意義       0 = 一個         0 0 = 沒有使用
     0 0 1 =   150 Baud     0 1 = 奇位檢核     1 = 兩個         0 1 = 沒有使用
     0 1 0 =   300 Baud     1 0 = 無意義                        1 0 = 7位元
     0 1 1 =   600 Baud     1 1 = 偶位檢核                      1 1 = 8位元
     1 0 0 = 1,200 Baud
     1 0 1 = 2,400 Baud
     1 1 0 = 4,800 Baud
     1 1 1 = 9,600 Baud

        AH=01 送出一個字元    I:DX    串列埠號碼 [ 0 = COM1 / 1 = COM2 ]
                                AL    字元
                              O:AX    串列埠狀態 [同功能3]
        AH=02 接收一個字元    I:DX    串列埠號碼 [ 0 = COM1 / 1 = COM2 ]
                              O:AL    字元 或
                                AX    串列埠狀態 [同功能3]
        AH=03 得到串列埠狀態  I:DX    串列埠號碼 [ 0 = COM1 / 1 = COM2 ]
                              O:AX    串列埠狀態
                                      AH: 線上狀態   80 = 時間用盡
                                                     40 = 傳輸移位暫存器空白
                                                     20 = 傳輸保存暫存器空白
                                                     10 = 中斷檢出
                                                     08 = 結構錯誤
                                                     04 = 位元檢核錯誤
                                                     02 = 起過錯誤
                                                     01 = 資料已準備好
                                      AL: 數據機狀態 80 = 接收線訊號檢出
                                                     40 = 環顯示
                                                     20 = 資料設定完成
                                                     10 = 已送完
                                                     08 = DELTA 接收訊號檢出
                                                     04 = 路徑環檢出
                                                     02 = DELTA 資料設定完成
                                                     01 = DELTA 已送完

INT 15H 卡帶I/O
        AH=00 開啟卡帶機馬達
        AH=01 關閉卡帶機馬達
        AH=02 由卡帶機讀取一或I:CX    需讀取的位元組數
              多個256BYTE區段   ES:BX 指向資料緩衝區
                              O:DX    已讀取的位元組數量
                                ES:BX 指向罪後一個位元加一位置
                                CF=00 作業成功
                                CF=01 發生錯誤
                                      AH=01 錯誤
                                      AH=02 資料傳輸流失
                                      AH=03 找不到資料
        AH=03 寫入一個或多個  I:CX    寫入的位元組數量
              256BYTE區段至卡   ES:BX 指向資料緩衝區
              帶              O:CX=00
                                ES:BX 指向最後一個位元加一位置


INT 16H 鍵盤I/O
        AH=00                 O:AH    掃瞄碼
                                AL    字元碼
        AH=01                 O:ZF    0/1=有/無字元進緩衝區
        AH=02                 O:AL    鍵盤狀態位元組 [0017H] KB_FLAG
                                                     [0018H] KB_FLAG_1
                                      80=插入狀態 INSERT MODE
                                      40=大寫狀態 CAP LOCK
                                      20=數字狀態 NUM LOCK
                                      10=捲動鎖定 SCROLL LOCK
                                      08=按下 ALT 鍵
                                      04=按下 CTRL 鍵
                                      02=按下左邊 SHIFT 鍵
                                      01=按下右邊 SHIFT 鍵

INT 17H 印表機I/O
        AH=00 印出一個字元    I:AL    欲印出的字元
                                DX    使用的列表機(0-2)
                              O:AH    作業結果狀態
                                      80=忙碌中    [BUSY]
                                      40=認知
                                      20=紙張用盡  [OUT OF PAPER]
                                      10=被選用    [SELECT]
                                      08=I/O錯誤   [I/O ERROR]
                                      01=時間結束

INT 18H 卡帶BASIC
INT 19H 開機重置
INT 1AH 日計時 [18.2次/秒]
        AH=00 讀取時間計數    O:CX,DX
              [必需設定IF=1]    AL    是否超過24小時
        AH=01 設定時間計數    I:CX,DX
        AH=02 讀取充電時鐘    O:CH = 時
                                CL = 分
                                DH = 秒
        AH=03 寫入充電時鐘    I:CH = 時
                                CL = 分
                                DH = 秒
                                DL = 0: 標準時間 1:日光節約時間
        AH=04 由充電時鐘      I:CH = 世紀 (19-20)
              讀取日期          CL = 年
                                DH = 月
                                DL = 日
        AH=05 由充電時鐘      I:CH = 世紀 (19-20)
              設定鬧鐘日期      CL = 年
                                DH = 月
                                DL = 日
        AH=06 設定鬧鐘        I:CH = 時
                                CL = 分
                                DH = 秒
        AH=07 重設鬧鐘

INT 1BH 鍵盤截斷 [Ctrl-Break]
INT 1CH 計時器滴嗒 [18.2次/秒]
INT 1DH 初設視訊,指向視訊控制參數表
INT 1EH 磁碟參數,指向磁碟基本參數表
INT 1FH 圖形字元擴充部份,指向高視訊圖形字元
INT 20H 終止程式


INT 21H 要求功能函數
        AH=00 終止程式
        AH=01 等待鍵盤字元並顯示      O:AL    鍵盤字元  [會檢查 Ctrl-Break]
        AH=02 顯示一字元              I:DL    顯示字元
        AH=03 等待非同步輸入字元      O:AL    非同步字元
        AH=04 輸出一字元至非同步裝置  I:DL    輸出字元
        AH=05 印出一字元              I:DL    印出字元
        AH=06 讀取鍵盤字元            I:DL    FF
                                      O:AL    鍵盤字元
              顯示一字元              I:DL    顯示字元  [<>FF]
        AH=07 等待鍵盤字元不顯示      O:AL    鍵盤字元  [不檢查 Ctrl-Break]
        AH=08 等待鍵盤字元不顯示      O:AL    鍵盤字元  [會檢查 Ctrl-Break]
        AH=09 顯示記憶體中的字串      I:DS:DX 字串位址  [+$]
        AH=0A 將鍵盤字元讀入緩衝區    I:DS:DX 緩衝區位址
        AH=0B 讀取鍵盤狀態            O:AL    00/無字 FF/有字[會檢查 Ctrl-Break]
        AH=0C 清除鍵盤緩衝區並        I:AL    鍵盤功能號碼 (1,6,7,8,A)
              呼叫鍵入功能            O:      每一個鍵盤功能
        AH=0D 重置磁碟機
        AH=0E 選用自然設定的磁碟機    I:DL    磁碟機號碼 [0=A,1=B]
                                      O:AL    系統中磁碟機數 [1/2]
        AH=0F 開啟檔案                I:DS:DX 未開檔FCB欲放的位址
                                      O:AL    00/找到檔案 FF/找不到檔案
        AH=10 關閉檔案                I:DS:DX 已開檔FCB位址
                                      O:AL    00/找到檔案 FF/找不到檔案
        AH=11 尋找檔名                I:DS:DX 未開檔FCB欲放的位址
                                      O:AL    00/找到檔案 FF/找不到檔案
        AH=12 找出下一個符合的檔名    I:DS:DX 未開檔FCB欲放的位址
                                      O:AL    00/找到檔案 FF/找不到檔案
        AH=13 刪除檔名                I:DS:DX 未開檔FCB欲放的位址
                                      O:AL    00/找到檔案 FF/找不到檔案
        AH=14 讀取循序檔              I:DS:DX 已開檔FCB位址
                                      O:AL    0 傳送成功
                                              1 資料錄中沒有資料
                                              2 空間不足
                                              3 讀取部分資料錄
        AH=15 寫入循序檔              I:DS:DX 已開檔FCB位址
                                      O:AL    0 傳送正確
                                              1 磁碟已滿
                                              2 空間不夠
        AH=16 建一新檔                I:DS:DX 未開檔FCB欲放的位址
                                      O:AL    00/檔案已建 FF/無空的記錄項
        AH=17 檔案改名                I:DS:DX     原檔名位址
                                        DS:DX+11H 新檔名位址
                                      O:AL    00/改名成功 FF/找不到原檔名
        AH=19 讀取預設的磁碟機號碼    O:AL    預設的磁碟機號碼 [0=A,1=B]
        AH=1A 設定磁碟傳送位址        I:DS:DX 磁碟傳送位址
        AH=1B 讀取配置表的位址        O:DS:DX 檔案配置表位址
                                        DX    配置單位的數量
                                        AL    資料錄/配置單位
                                        CX    實際磁區的大小
        AH=1C 得到FAT訊息             I:DL    磁碟機號碼
                                      O:CX    每磁區位元組數
                                        DS:DX 指向FAT識別位元組
        AH=21 讀取隨機檔              I:DS:DX 已開檔FCB位址
                                      O:AL    0 傳送成功
                                              1 資料錄中沒有資料
                                              2 空間不足
                                              3 讀取部分資料錄
        AH=22 寫入隨機檔              I:DS:DX 已開檔FCB位址
                                      O:AL    0 傳送正確
                                              1 磁碟已滿
                                              2 空間不夠

        AH=23 設定檔案大小            I:DS:DX 未開檔FCB欲放的位址
                                      O:AL    00/檔案大小已設定
                                              FF/找不到符合的入口
        AH=24 設定隨機檔資料錄欄      I:DS:DX 已開檔FCB位址
        AH=25 設定岔斷向量            I:DS:DX 向量指標位址
                                        AL    岔斷型態碼
        AH=26 建一新的程式段Segment   I:DX    新段號碼
        AH=27 讀取隨機資料區段Block   I:DS:DX 已開檔FCB位址
                                      O:AL    0 傳送成功
                                              1 檔案結束
                                              2 發生重疊
                                              3 最後一資料錄為部分資料錄
        AH=28 寫入隨機資料區段        I:DS:DX 已開檔FCB位址
                                      O:AL    0 傳送成功
                                              1 空間不足
        AH=29 剖析檔名的語法          I:DS:SI 剖析命令的位址
                                        ES:DI 未開檔FCB欲放的位址
                                        AL    00/FF 忽略/不忽略 前導分隔字元
                                      O:AL    00 剖析成功
                                              01 檔名含 ? 或 *
                                              FF 指定的磁碟機未可用
        AH=2A 取得日期                O:CX    年 1980-2099
                                        DH    月 1-12
                                        DL    日 1-31
        AH=2B 設定日期                I:CX    年 1980-2099
                                        DH    月 1-12
                                        DL    日 1-31
                                      O:AL    00/FF 有/無 日期計數
        AH=2C 取得時間                O:CH    時 0-23
                                        CL    分 0-59
                                        DH    秒 0-59
                                        DL 1/100 0-99
        AH=2D 設定時間                I:CH    時 0-23
                                        CL    分 0-59
                                        DH    秒 0-59
                                        DL 1/100 0-99
                                      O:AL    00/FF 有/無 時間計數
        AH=2E 設定磁碟寫入查驗        I:AL=0  查驗開關 OFF
                                        AL=1  查驗開關 ON
                                        DL=00
        AH=2F 取得磁碟轉移位址(DTA)   O:ES:BX 指到目前的DTA
                                        AL    返回碼
        AH=30 得到DOS版本號碼         O:AL    主要版本號碼
                                        AH    次要版本號碼
                                        BX    0000
                                        CX    0000
        AH=31 結束但保留在記憶體內    I:DX    欲保留的記憶體大小 [K數*64]
        AH=33 檢查 Ctrl-Break         I:AL=0  檢查目前狀態
                                      O:DL    0/1 = OFF/ON
                                      I:AL=1  設定狀態
                                        DL    0/1 = OFF/ON
        AH=35 取得插斷向量            I:AL    插斷號碼
                                      O:AX    返回碼
                                        ES:BX 插斷向量
        AH=36 得到磁碟剩餘可用空間    I:DL    磁碟機號碼
                                      O:AL    每叢集磁區數
                                        BX    可用叢集數
                                        CX    每個磁區位元組數
                                        DX    總叢集數

        AH=38 取得有關國家資料        I:DS:DX 指向32位元緩衝區
                                        AL=00 標準碼
                                        AL=   國家碼
                                        AL=FF 當國家碼>255時
                                        BX    國家碼 [當AL=FF時]
                                      O:AX    返回碼   [CF=01]
                                        DS:DX 資料
                                        BX    國家碼
        AH=39 建立次目錄              I:DS:DX 指向ASCII字串
                                      O:AX    返回碼
        AH=3A 刪除次目錄              I:DS:DX 指向ASCII字串
                                      O:AX    返回碼
        AH=3B 改變目前次目錄          I:DS:DX 指向ASCII字串
                                      O:AX    返回碼
        AH=3C 建立檔案                I:CX    檔案屬性
                                        DS:DX 指向ASCII字串
                                      O:AX    檔案掌理或返回碼
        AH=3D 開啟檔案                I:AL    存取碼
                                        DS:DX 指向ASCII字串
                                      O:AX    檔案掌理或返回碼
        AH=3E 關閉檔案掌握            I:BX    檔案掌理
                                      O:AX    返回碼
        AH=3F 讀取檔案或裝置          I:BX    檔案掌理
                                        CX    讀取位元組數
                                        DS:DX 指向DTA緩衝區
                                      O:AX    讀取位元組數或返回碼
        AH=40 寫入檔案或裝置          I:BX    檔案掌理
                                        CX    讀取位元組數
                                        DS:DX 指向DTA緩衝區
                                      O:AX    寫入位元組數或返回碼
        AH=41 刪除檔案                I:DS:DX 指向ASCII字串
                                      O:AX    返回碼
        AH=42 搬移檔案指標            I:AL    方法碼
                                        CX:DX 間距值
                                      O:AX    返回碼       [如果 CF=1]
                                        DS:AX 新的指標位置 [如果 CF=0]
        AH=43 CHMOD 取得/設定檔案屬性 I:AL=00 由CX取得
                                        AL=01 由CX設定
                                        DS:DX 指向ASCII字串
                                      O:AX    返回碼
                                        CX    取得的屬性
        AH=44 裝置輸出入控制          I:AL    次功能碼
                                        BL    磁碟號碼
                                        BX    檔案掌理
        AH=45 DUP複製檔案掌理         I:BX    檔案掌理
                                      O:AX    檔案掌理或返回碼
        AH=46 CDUP複製檔案掌理        I:BX    已有檔案掌理
                                        CX    第二個檔案掌理
                                      O:AX    返回碼
                                        CX    檔案掌理
        AH=47 得到目前次目錄          I:DL    磁碟機號碼
                                        DS:SI 指向資料區段
                                      O:AX    返回碼   [CF=01]
                                        DS:SI 路徑名稱 [CF=00]
        AH=48 定位記憶體              I:BX    所要的記憶體 [以區段表示]
                                      O:AX    區段位址或返回碼 [CF=01]
                                        BX    最大可用區塊大小
        AH=49 釋放定位記憶體          I:ES    釋放的區段區塊
                                      O:AX    返回碼

        AH=4A 更改定位記憶區塊        I:BX    所用的記憶體 [以區塊表示]
                                        ES    區段區塊位址
                                      O:AX    返回碼
                                        BX    最大可能大小
        AH=4B 執行或載入一個程式      I:DS:DX 路徑名稱的位址
                                        ES:BX 指到參數區位址
                                        AL=0  載入並執行
                                        AL=3  載入
        AH=4C 停止執行程式            O:AL    返回碼
        AH=4D 取得前一程式結束時      O:AL    返回碼
              的返回碼                  AH    0 結束/中止
                                              1 Ctrl-C
                                              2 嚴重錯誤
                                              3 結束而且駐留於記憶體中
        AH=4E FIND:FIRST開始搜尋檔案  I:CX    要搜尋的屬性
                                        DS:DX 指向ASCII字串
                                      O:AX    返回碼
        AH=4F 繼續搜尋檔案            I:DS:DX 由呼叫FIND FIRST而來
                                      O:AX    返回碼
        AH=54 得到查驗狀態            O:AL    查驗狀態
        AH=56 重定檔案名稱            I:DS:DX 指向ASCII字串[舊檔案]
                                        ES:DI 指向ASCII字串[新檔案]
                                      O:AX    擴充的標準
        AH=57 取得或設定              I:AL=00 取得
              檔案日期及時間            AL=01 設定
                                        BX    檔案掌理
                                        CX    時間
                                        DX    日期
                                      O:AX    標準擴充返回碼
                                        CX    時間
                                        DX    日期
        AH=59 得到擴充錯誤碼          I:BX    0000
                                      O:AX    錯誤碼
                                        BH    錯誤等級
                                        BL    動作
                                        CH    位置
        AH=5A 建立暫時檔案            I:DS:DX 指向目標路徑名稱
                                        CX    檔案屬性
                                      O:AX    錯誤碼   [CF=1]
                                        DS:DX 路徑名稱 [CF=0]
        AH=5B 建立新檔案              I:DS:DX 指向目標路徑名稱
                                        CX    檔案屬性
                                      O:AX    掌理或錯誤碼
        AH=5C 檔案存取鎖定和釋放      I:AL=00 鎖定
                                        AL=01 釋放
                                        BX    檔案掌理
                                        CX:DX 鎖定間距
                                        SI:DI 鎖定數量
                                      O:AX    錯誤碼
        AH=62 得到PSP位址             O:BX    PSP的區段返回碼

INT 22H 終止位址
INT 23H Ctrl-Break跳出程式
INT 24H 緊急錯誤處理程式
INT 25H 絕對式讀取磁碟
INT 26H 絕對式寫入磁碟
INT 27H 終止,但留在原處 DX = K數 * 64

INT 28H - INT 3FH 保留未用

小恐龍工作坊 提供