• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • bios中斷調用

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    轉載子水木社區 ;┌─────────────────────────────────┐ ;│BIOS呼叫INT10H,AH=00H│ ;│設定螢幕影相模式│ ;│?(AL)=模式碼(正常為03h)│ ;│模式碼:解析度顏色數目頁數位址│ ;│文00H:40*2516色8頁B8000H~B87CFH│ ;
    轉載子"水木社區"

    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=00H │
    ;│設定螢幕影相模式 │
    ;│? (AL) <= 模式碼 (正常為 03h) │
    ;│模式碼: 解析度 顏色數目 頁數 位址 │
    ;│ 文 00H: 40*25 16 色 8 頁 B8000H~B87CFH │
    ;│ 字 01H: 80*25 16 色 8 頁 B8000H~B87CFH │
    ;│ 模 02H: 80*25 16 色 8 頁 B8000H~B8F9FH │
    ;│ 式 03H: 80*25 16 色 8 頁 B8000H~B8F9FH │
    ;│ 07H: 80*25 2 色 8 頁 B8000H~B8F9FH │
    ;│ 解析度 顏色數目 頁數 位址 │
    ;│ 繪 04H: 320*200 4 色 1 頁 B8000H~BBF3FH │
    ;│ 圖 05H: 320*200 4 色 1 頁 B8000H~BBF3FH │
    ;│ 模 06H: 640*200 2 色 1 頁 B8000H~BBF3FH │
    ;│ 式 0DH: 320*200 16 色 8 頁 A0000H~A1F3FH │
    ;│ 0EH: 640*200 16 色 4 頁 A0000H~A3E7FH │
    ;│ 0FH: 640*350 2 色 2 頁 A0000H~A6D5FH │
    ;│ 10H: 640*350 16 色 2 頁 A0000H~A6D5FH │
    ;│ 11H: 640*480 2 色 1 頁 A0000H~A95FFH │
    ;│ 12H: 640*480 16 色 1 頁 A0000H~A95FFH │
    ;│ 13H: 320*200 256 色 1 頁 A0000H~AF9FFH │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=01H │
    ;│設定游標形狀 ┌──┐ │
    ;│? (CH) <= 游標的啟始線 (0~15) │ │<---- 啟始線 │
    ;│? (CL) <= 游標的終止線 (0~15) │ │ │
    ;│註:正常: CH=0DH,CL=0EH │ │<---- 終止線 │
    ;│ 消失: CH=0FFH,CL=0FFH └──┘ │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=02H │
    ;│設定游標位置 │
    ;│? (DH) <= 游標的 列 數 (0~24) │
    ;│? (DL) <= 游標的 行 數 (0~79) │
    ;│? (BH) <= 頁碼 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=03H │
    ;│取得游標位置 │
    ;│? (BH) <= 頁碼 ┌──┐ │
    ;│游標的 列 數 => (DH) │ │<---- 啟始線 │
    ;│游標的 行 數 => (DL) │ │ │
    ;│游標的啟始線 => (CH) │ │<---- 終止線 │
    ;│游標的終止線 => (CL) └──┘ │
    ;│註:正常: CH=0DH,CL=0EH │
    ;│ 消失: CH=0FFH,CL=0FFH │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=05H │
    ;│畫面頁區的號擇 │
    ;│? (AL) <= 頁碼 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│INT 10h,AH=06H │
    ;│把指定的視窗範圍上捲 │
    ;│? (AL) <= 捲動的列數,若為 0 則清除螢幕 │
    ;│? (BH) <= 捲動後空出位置放入的屬性 │
    ;│? (CH) <= 捲動範圍的左上座標 列 │
    ;│? (CL) <= 捲動範圍的左上座標 行 │
    ;│? (DH) <= 捲動範圍的右下座標 列 │
    ;│? (DL) <= 捲動範圍的右下座標 行 │
    ;│ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │
    ;│顏色屬性: bh =│b7│b6│b5│b4│b3│b2│b1│b0│ │
    ;│ └─┴─┴─┴─┴─┴─┴─┴─┘ │
    ;│bit0~2 :字體顏色 (0:黑,1:藍,2:綠,3:青,4:紅,5:紫,6:綜,7:白) │
    ;│bit3 :字體亮度 (0:字體正常,1:字體高亮度) │
    ;│bit4~6 :背景顏色 (0:黑,1:藍,2:綠,3:青,4:紅,5:紫,6:綜,7:白) │
    ;│bit7 :字體閃爍 (0:不閃爍,1:字體閃爍) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│INT 10h,AH=07H │
    ;│把指定的視窗範圍下捲 │
    ;│? (AL) <= 捲動的列數,若為 0 則清除螢幕 │
    ;│? (BH) <= 捲動後空出位置放入的屬性 │
    ;│? (CH) <= 捲動範圍的左上座標 列 │
    ;│? (CL) <= 捲動範圍的左上座標 行 │
    ;│? (DH) <= 捲動範圍的右下座標 列 │
    ;│? (DL) <= 捲動範圍的右下座標 行 │
    ;│ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │
    ;│顏色屬性: bh =│b7│b6│b5│b4│b3│b2│b1│b0│ │
    ;│ └─┴─┴─┴─┴─┴─┴─┴─┘ │
    ;│bit0~2 :字體顏色 (0:黑,1:藍,2:綠,3:青,4:紅,5:紫,6:綜,7:白) │
    ;│bit3 :字體亮度 (0:字體正常,1:字體高亮度) │
    ;│bit4~6 :背景顏色 (0:黑,1:藍,2:綠,3:青,4:紅,5:紫,6:綜,7:白) │
    ;│bit7 :字體閃爍 (0:不閃爍,1:字體閃爍) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=08H │
    ;│讀取游標所在位置的字元及屬性 │
    ;│? (BH) <= 頁碼 │
    ;│字元 ascii => (AL) │
    ;│字元的屬性 => (AH) │
    ;│ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │
    ;│顏色屬性: ah =│b7│b6│b5│b4│b3│b2│b1│b0│ │
    ;│ └─┴─┴─┴─┴─┴─┴─┴─┘ │
    ;│bit0~2 :字體顏色 (0:黑,1:藍,2:綠,3:青,4:紅,5:紫,6:綜,7:白) │
    ;│bit3 :字體亮度 (0:字體正常,1:字體高亮度) │
    ;│bit4~6 :背景顏色 (0:黑,1:藍,2:綠,3:青,4:紅,5:紫,6:綜,7:白) │
    ;│bit7 :字體閃爍 (0:不閃爍,1:字體閃爍) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=09H │
    ;│寫入字元及屬性在游標所在位置,游標不動 (繪圖模式亦能使用) │
    ;│? (AL) <= 欲寫入的字元 ascii │
    ;│? (BL) <= 欲寫入之字元的屬性 │
    ;│? (CX word) <= 欲顯示的次數 │
    ;│? (BH) <= 頁碼 │
    ;│ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │
    ;│顏色屬性: bl =│b7│b6│b5│b4│b3│b2│b1│b0│ │
    ;│ └─┴─┴─┴─┴─┴─┴─┴─┘ │
    ;│bit0~2 :字體顏色 (0:黑,1:藍,2:綠,3:青,4:紅,5:紫,6:綜,7:白) │
    ;│bit3 :字體亮度 (0:字體正常,1:字體高亮度) │
    ;│bit4~6 :背景顏色 (0:黑,1:藍,2:綠,3:青,4:紅,5:紫,6:綜,7:白) │
    ;│bit7 :字體閃爍 (0:不閃爍,1:字體閃爍) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=0AH │
    ;│寫入字元在游標所在位置,游標不動,屬性不變 (繪圖模式亦能使用) │
    ;│? (AL) <= 欲寫入的字元 ascii │
    ;│? (CX word) <= 欲顯示的次數 │
    ;│? (BH) <= 頁碼 │
    ;│? (BL) <= 前景顏色 (繪圖模式時) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=0BH │
    ;│設定文字模式(0~3)的邊框顏色 或 繪圖模式(4、5)的背景顏色 │
    ;│? (BL) <= 顏色屬性 │
    ;│ (1)文字模式(0~3):邊框顏色,只用到 低4bit,共16色 │
    ;│ (2)繪圖模式(4、5、6):背景顏色,只用到 低4bit,共16色 │
    ;│ bit0~2 :顏色 (0:黑,1:藍,2:綠,3:青,4:紅,5:紫,6:綜,7:白)│
    ;│ bit3 :為亮度 (1:高亮度,0:正常) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=0BH │
    ;│設定繪圖模式(4、5)的調色盤 │
    ;│? (BL) <= 調色盤 (以 0 bit 決定) │
    ;│bit0 = 0 (黑、綠、紅、黃) │
    ;│ = 1 (黑、青、紫、白) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=0CH │
    ;│在繪圖模式下畫一點 │
    ;│? (AL) <= 像點的顏色值 │
    ;│? (CX word) <= 座標 X 軸 │
    ;│? (DX word) <= 座標 Y 軸 │
    ;│? (BH) <= 頁碼 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=0DH │
    ;│在繪圖模式下讀點像值 │
    ;│? (CX word) <= 座標 X 軸 │
    ;│? (DX word) <= 座標 Y 軸 │
    ;│像點的顏色值 => (AL) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=0EH │
    ;│在文字模式 或 繪圖模式下顯示一字元,游標則右移一格 │
    ;│? (AL) <= 字元 ascii │
    ;│? (BH) <= 頁碼 │
    ;│? (BL) <= 前景顏色碼 (繪圖模式時) │
    ;│註:所謂 TTY 就是類似打字機輸出方式,每顯示一字元,游標則右移一格,│
    ;│ 當移到最後一行時,游標則至跳下一列的最左邊開始,當移到最後一列 │
    ;│ 時,螢幕則上捲一列 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=0FH │
    ;│取得螢幕影相模式 │
    ;│每行字數 => (AH) │
    ;│模式號碼 => (AL) │
    ;│使用頁碼 => (BH) │
    ;│模式碼: 解析度 顏色數目 頁數 位址 │
    ;│ 文 00H: 40*25 16 色 8 頁 B8000H~B87CFH │
    ;│ 字 01H: 80*25 16 色 8 頁 B8000H~B87CFH │
    ;│ 模 02H: 80*25 16 色 8 頁 B8000H~B8F9FH │
    ;│ 式 03H: 80*25 16 色 8 頁 B8000H~B8F9FH │
    ;│ 07H: 80*25 2 色 8 頁 B8000H~B8F9FH │
    ;│ 解析度 顏色數目 頁數 位址 │
    ;│ 繪 04H: 320*200 4 色 1 頁 B8000H~BBF3FH │
    ;│ 圖 05H: 320*200 4 色 1 頁 B8000H~BBF3FH │
    ;│ 模 06H: 640*200 2 色 1 頁 B8000H~BBF3FH │
    ;│ 式 0DH: 320*200 16 色 8 頁 A0000H~A1F3FH │
    ;│ 0EH: 640*200 16 色 4 頁 A0000H~A3E7FH │
    ;│ 0FH: 640*350 2 色 2 頁 A0000H~A6D5FH │
    ;│ 10H: 640*350 16 色 2 頁 A0000H~A6D5FH │
    ;│ 11H: 640*480 2 色 1 頁 A0000H~A95FFH │
    ;│ 12H: 640*480 16 色 1 頁 A0000H~A95FFH │
    ;│ 13H: 320*200 256 色 1 頁 A0000H~AF9FFH │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AX=1130H │
    ;│讀取 VGA BIOS 中有關字形的資訊 │
    ;│? (BH) <= 所要取的位址模式 │
    ;│取出的位址 => (ES:BP) │
    ;│目前字形的高度 => (CX) │
    ;│目前字形下螢幕列數-1 => (DL) │
    ;│位址模式:00H:中斷 1FH 的位址 │
    ;│ 01H:中斷 43H 的位址 │
    ;│ 02H:8*14 字形表的位址 │
    ;│ 03H:8*8 字形表的位址 │
    ;│ 04H:8*8 ascii 值大於 127 的字形表位址 │
    ;│ 05H:9*14 字形表的位址 │
    ;│ 06H:8*16 字形表的位址 │
    ;│ 07H:9*16 字形表的位址 │
    ;│註:中斷向量 1fh 的值亦是指向 ascii 值大於 127 的字形表位址 │
    ;│ 中斷向量 43h 的值則是指向目前螢幕模式所使用的字形表位址 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=13H │
    ;│顯示一列字串 │
    ;│? (AL) <= 寫入模式 │
    ;│? (BL) <= 字元之屬性 │
    ;│? (CX word) <= 字串的長度 │
    ;│? (DH) <= 游標的座標 列 數 │
    ;│? (DL) <= 游標的座標 行 數 │
    ;│? (ES:BP) <= 存字串內容的記憶體變數 │
    ;│? (BH) <= 頁碼 │
    ;│寫入 AL=00H:字串的屬性由 BL 決定,所以 CX 所指的長度以 byte 為單位│
    ;│模式 AL=01H:同 AL=00H,但游標會移到字串尾端,未顯示字元的位置 │
    ;│ AL=02H:字串屬性由每字元的後面一個byte指定,故 CX 單位為 word │
    ;│ AL=03H:同 AL=02H,但游標會移到字串尾端,未顯示字元的位置 │
    ;│ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │
    ;│顏色屬性: bl =│b7│b6│b5│b4│b3│b2│b1│b0│ │
    ;│ └─┴─┴─┴─┴─┴─┴─┴─┘ │
    ;│bit0~2 :字體顏色 (0:黑,1:藍,2:綠,3:青,4:紅,5:紫,6:綜,7:白) │
    ;│bit3 :字體亮度 (0:字體正常,1:字體高亮度) │
    ;│bit4~6 :背景顏色 (0:黑,1:藍,2:綠,3:青,4:紅,5:紫,6:綜,7:白) │
    ;│bit7 :字體閃爍 (0:不閃爍,1:字體閃爍) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=80H │
    ;│倚天中文的控制 │
    ;│? (AL) <= 控制碼,限輸入數值,如下 │
    ;│控 51H:釋放中文 30H:內碼輸入法 74H:透通模式切換 │
    ;│制 71H:釋放中文 31H:倉頡輸入法 4CH:條列模式(L) │
    ;│碼 41H:切換為英文模式 32H:簡易輸入法 6CH:條列模式切換 │
    ;│ 61H:中英文模式切換 33H:注音輸入法 48H:顯示內碼(H) │
    ;│ 6EH:切換為中文模式 34H:三角輸入法 68H:顯示內碼切換 │
    ;│ 43H:切換為中文輸入 35H:簡捷輸入法 47H:圖形捲動(G) │
    ;│ 63H:中英文輸入切換 37H:行列輸入法 67H:圖形捲動切換 │
    ;│ 46H:全形輸入 39H:電信輸入法 4DH:隱藏狀態列 │
    ;│ 66H:全形、半形切換 54H:透通模式(T) 6DH:狀態列切換 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 10H,AH=91H │
    ;│檢查是否有載入倚天中文 │
    ;│載入狀態 => (AH != 91H 表有載入,AH = 91H 表未載入) │
    ;│目前模式 => (DH),(bit7=0 表中文模式,bit7=1 表英文模式) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 13H,AH=00H │
    ;│重設磁碟機,準備下一次I/O │
    ;│? (DL) <= 磁碟機代號 (A:00H,B:01H,C:80H,D:81H) │
    ;│成功 => (C=0),(失敗 C=1,示誤碼如下) │
    ;│ AH=00H:成功 AH=80H:floppy disk drive 未備妥 │
    ;│ AH=05H:硬碟重置錯誤 AH=AAH:hard disk drive 未備妥 │
    ;│ AH=20H:磁碟控制器失誤 AH=BBH:所指定的磁碟機找不到 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 13H,AH=01H │
    ;│讀取磁碟機狀態 │
    ;│? (DL) <= 磁碟機代號 (A:00H,B:01H,C:80H,D:81H) │
    ;│成功 => (C=0),(失敗 C=1,示誤碼如下) │
    ;│ AH=00H:成功 AH=0AH:硬碟的磁區損壞 │
    ;│ AH=01H:不合法的磁碟機命令 AH=0BH:硬碟的磁軌損壞 │
    ;│ AH=02H:磁區損壞或位址欄有誤 AH=0CH:存取不存在的磁軌 │
    ;│ AH=03H:防寫貼紙未撕 AH=10H:CRC/ECC錯誤 │
    ;│ AH=04H:找不到指定的磁區 AH=11H:資料讀取錯誤,使用ECC校正│
    ;│ AH=05H:硬碟重置錯誤 AH=20H:磁碟控制器失誤 │
    ;│ AH=06H:不是原來的磁片 AH=40H:尋找磁軌錯誤 │
    ;│ AH=07H:硬碟參數錯誤 AH=80H:floppy disk drive 未備妥 │
    ;│ AH=08HMA 忙碌中 AH=AAH:hard disk drive 未備妥 │
    ;│ AH=09HMA搬動記憶區越過64K AH=BBH:所指定的磁碟機找不到 │
    ;│註:CRC為循環重複檢查檢,用來偵測磁碟上資料是否有誤 │
    ;│ ECC為錯誤校正碼,是用來偵測並校正磁碟上的資料是否有誤,ECC具有 │
    ;│ 自動校正錯誤功能,而且只有硬碟才有ECC │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 13H,AH=02H │
    ;│讀取磁區資料 │
    ;│? (DL) <= 磁碟機代號 (A:00H,B:01H,C:80H,D:81H) │
    ;│? (AL) <= 欲讀取的磁區數 │
    ;│? (CH) <= 磁軌號碼,從 0 開始,高 2 bit 可存於 cl 的 b6、b7 │
    ;│? (CL) <= 起始磁區編號,從 1 開始 │
    ;│? (DH) <= 磁頭號碼,從 0 開始 │
    ;│? (ES:BX) <= 欲儲存資料的緩衝區記憶體變數 │
    ;│成功 => (C=0),(AL=真正讀到的磁區數) │
    ;│ AH=00H:成功 AH=0AH:硬碟的磁區損壞 │
    ;│ AH=01H:不合法的磁碟機命令 AH=0BH:硬碟的磁軌損壞 │
    ;│ AH=02H:磁區損壞或位址欄有誤 AH=0CH:存取不存在的磁軌 │
    ;│ AH=03H:防寫貼紙未撕 AH=10H:CRC/ECC錯誤 │
    ;│ AH=04H:找不到指定的磁區 AH=11H:資料讀取錯誤,使用ECC校正│
    ;│ AH=05H:硬碟重置錯誤 AH=20H:磁碟控制器失誤 │
    ;│ AH=06H:不是原來的磁片 AH=40H:尋找磁軌錯誤 │
    ;│ AH=07H:硬碟參數錯誤 AH=80H:floppy disk drive 未備妥 │
    ;│ AH=08H  忙碌中 AH=AAH:hard disk drive 未備妥 │
    ;│ AH=09H  搬動記憶區越過64K AH=BBH:所指定的磁碟機找不到 │
    ;│註:CRC為循環重複檢查檢,用來偵測磁碟上資料是否有誤 │
    ;│ ECC為錯誤校正碼,是用來偵測並校正磁碟上的資料是否有誤,ECC具有 │
    ;│ 自動校正錯誤功能,而且只有硬碟才有ECC │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 13H,AH=03H │
    ;│寫資料到磁區內 │
    ;│? (DL) <= 磁碟機代號 (A:00H,B:01H,C:80H,D:81H) │
    ;│? (AL) <= 欲寫入的磁區數 │
    ;│? (CH) <= 磁軌號碼,從 0 開始,高 2 bit 可存於 cl 的 b6、b7 │
    ;│? (CL) <= 起始磁區編號,從 1 開始 │
    ;│? (DH) <= 磁頭號碼,從 0 開始 │
    ;│? (ES:BX) <= 已儲存資料的緩衝區記憶體變數 │
    ;│成功 => (C=0),(AL=真正寫入的磁區數) │
    ;│ AH=00H:成功 AH=0AH:硬碟的磁區損壞 │
    ;│ AH=01H:不合法的磁碟機命令 AH=0BH:硬碟的磁軌損壞 │
    ;│ AH=02H:磁區損壞或位址欄有誤 AH=0CH:存取不存在的磁軌 │
    ;│ AH=03H:防寫貼紙未撕 AH=10H:CRC/ECC錯誤 │
    ;│ AH=04H:找不到指定的磁區 AH=11H:資料讀取錯誤,使用ECC校正│
    ;│ AH=05H:硬碟重置錯誤 AH=20H:磁碟控制器失誤 │
    ;│ AH=06H:不是原來的磁片 AH=40H:尋找磁軌錯誤 │
    ;│ AH=07H:硬碟參數錯誤 AH=80H:floppy disk drive 未備妥 │
    ;│ AH=08H 忙碌中 AH=AAH:hard disk drive 未備妥 │
    ;│ AH=09H 搬動記憶區越過64K AH=BBH:所指定的磁碟機找不到 │
    ;│註:CRC為循環重複檢查檢,用來偵測磁碟上資料是否有誤 │
    ;│ ECC為錯誤校正碼,是用來偵測並校正磁碟上的資料是否有誤,ECC具有 │
    ;│ 自動校正錯誤功能,而且只有硬碟才有ECC │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 13H,AH=04H │
    ;│檢查磁區結構是否完好 │
    ;│? (DL) <= 磁碟機代號 (A:00H,B:01H,C:80H,D:81H) │
    ;│? (AL) <= 欲檢查的磁區數 │
    ;│? (CH) <= 磁軌號碼,從 0 開始,高 2 bit 可存於 cl 的 b6、b7 │
    ;│? (CL) <= 起始磁區編號,從 1 開始 │
    ;│? (DH) <= 磁頭號碼,從 0 開始 │
    ;│成功 => (C=0),(失敗 C=1,示誤碼如下) │
    ;│ AH=00H:成功 AH=0AH:硬碟的磁區損壞 │
    ;│ AH=01H:不合法的磁碟機命令 AH=0BH:硬碟的磁軌損壞 │
    ;│ AH=02H:磁區損壞或位址欄有誤 AH=0CH:存取不存在的磁軌 │
    ;│ AH=03H:防寫貼紙未撕 AH=10H:CRC/ECC錯誤 │
    ;│ AH=04H:找不到指定的磁區 AH=11H:資料讀取錯誤,使用ECC校正│
    ;│ AH=05H:硬碟重置錯誤 AH=20H:磁碟控制器失誤 │
    ;│ AH=06H:不是原來的磁片 AH=40H:尋找磁軌錯誤 │
    ;│ AH=07H:硬碟參數錯誤 AH=80H:floppy disk drive 未備妥 │
    ;│ AH=08HMA 忙碌中 AH=AAH:hard disk drive 未備妥 │
    ;│ AH=09HMA搬動記憶區越過64K AH=BBH:所指定的磁碟機找不到 │
    ;│註:CRC為循環重複檢查檢,用來偵測磁碟上資料是否有誤 │
    ;│ ECC為錯誤校正碼,是用來偵測並校正磁碟上的資料是否有誤,ECC具有 │
    ;│ 自動校正錯誤功能,而且只有硬碟才有ECC │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 13H,AH=05H │
    ;│將指定的磁區格式化,以軌為單位 │
    ;│? (DL) <= 磁碟機代號 (A:00H,B:01H,C:80H,D:81H) │
    ;│? (CH) <= 磁軌號碼,從 0 開始,高 2 bit 可存於 cl 的 b6、b7 │
    ;│? (DH) <= 磁頭號碼,從 0 開始 │
    ;│? (ES:BX) <= 指向磁區參數表的記憶體變數,共四 byte,即 CHRN │
    ;│磁區參數表:C:磁柱編號(cylinder) R:磁區編號(Record) │
    ;│ H:磁頭編號(head) N:每磁區的byte數(0:128,1:256 │
    ;│ 2:512,3:1024) │
    ;│成功 => (C=0),(失敗 C=1,示誤碼如下) │
    ;│ AH=00H:成功 AH=0AH:硬碟的磁區損壞 │
    ;│ AH=01H:不合法的磁碟機命令 AH=0BH:硬碟的磁軌損壞 │
    ;│ AH=02H:磁區損壞或位址欄有誤 AH=0CH:存取不存在的磁軌 │
    ;│ AH=03H:防寫貼紙未撕 AH=10H:CRC/ECC錯誤 │
    ;│ AH=04H:找不到指定的磁區 AH=11H:資料讀取錯誤,使用ECC校正│
    ;│ AH=05H:硬碟重置錯誤 AH=20H:磁碟控制器失誤 │
    ;│ AH=06H:不是原來的磁片 AH=40H:尋找磁軌錯誤 │
    ;│ AH=07H:硬碟參數錯誤 AH=80H:floppy disk drive 未備妥 │
    ;│ AH=08HMA 忙碌中 AH=AAH:hard disk drive 未備妥 │
    ;│ AH=09HMA搬動記憶區越過64K AH=BBH:所指定的磁碟機找不到 │
    ;│註:CRC為循環重複檢查檢,用來偵測磁碟上資料是否有誤 │
    ;│ ECC為錯誤校正碼,是用來偵測並校正磁碟上的資料是否有誤,ECC具有 │
    ;│ 自動校正錯誤功能,而且只有硬碟才有ECC │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 13H,AH=06H │
    ;│將指定的磁軌格式化,並設定損壞磁碟 │
    ;│? (DL) <= 磁碟機代號 (A:00H,B:01H,C:80H,D:81H) │
    ;│? (CH) <= 磁軌號碼,從 0 開始,高 2 bit 可存於 cl 的 b6、b7 │
    ;│? (CL) <= 起始磁區編號,從 1 開始 │
    ;│? (DH) <= 磁頭號碼,從 0 開始 │
    ;│成功 => (C=0),(失敗 C=1,示誤碼如下) │
    ;│ AH=00H:成功 AH=0AH:硬碟的磁區損壞 │
    ;│ AH=01H:不合法的磁碟機命令 AH=0BH:硬碟的磁軌損壞 │
    ;│ AH=02H:磁區損壞或位址欄有誤 AH=0CH:存取不存在的磁軌 │
    ;│ AH=03H:防寫貼紙未撕 AH=10H:CRC/ECC錯誤 │
    ;│ AH=04H:找不到指定的磁區 AH=11H:資料讀取錯誤,使用ECC校正│
    ;│ AH=05H:硬碟重置錯誤 AH=20H:磁碟控制器失誤 │
    ;│ AH=06H:不是原來的磁片 AH=40H:尋找磁軌錯誤 │
    ;│ AH=07H:硬碟參數錯誤 AH=80H:floppy disk drive 未備妥 │
    ;│ AH=08HMA 忙碌中 AH=AAH:hard disk drive 未備妥 │
    ;│ AH=09HMA搬動記憶區越過64K AH=BBH:所指定的磁碟機找不到 │
    ;│註:CRC為循環重複檢查檢,用來偵測磁碟上資料是否有誤 │
    ;│ ECC為錯誤校正碼,是用來偵測並校正磁碟上的資料是否有誤,ECC具有 │
    ;│ 自動校正錯誤功能,而且只有硬碟才有ECC │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 13H,AH=07H │
    ;│從指定的磁軌位置,格式化磁片 │
    ;│? (DL) <= 磁碟機代號 (A:00H,B:01H,C:80H,D:81H) │
    ;│? (CH) <= 磁軌號碼,從 0 開始,高 2 bit 可存於 cl 的 b6、b7 │
    ;│? (CL) <= 起始磁區編號,從 1 開始 │
    ;│? (DH) <= 磁頭號碼,從 0 開始 │
    ;│成功 => (C=0),(失敗 C=1,示誤碼如下) │
    ;│ AH=00H:成功 AH=0AH:硬碟的磁區損壞 │
    ;│ AH=01H:不合法的磁碟機命令 AH=0BH:硬碟的磁軌損壞 │
    ;│ AH=02H:磁區損壞或位址欄有誤 AH=0CH:存取不存在的磁軌 │
    ;│ AH=03H:防寫貼紙未撕 AH=10H:CRC/ECC錯誤 │
    ;│ AH=04H:找不到指定的磁區 AH=11H:資料讀取錯誤,使用ECC校正│
    ;│ AH=05H:硬碟重置錯誤 AH=20H:磁碟控制器失誤 │
    ;│ AH=06H:不是原來的磁片 AH=40H:尋找磁軌錯誤 │
    ;│ AH=07H:硬碟參數錯誤 AH=80H:floppy disk drive 未備妥 │
    ;│ AH=08HMA 忙碌中 AH=AAH:hard disk drive 未備妥 │
    ;│ AH=09HMA搬動記憶區越過64K AH=BBH:所指定的磁碟機找不到 │
    ;│註:CRC為循環重複檢查檢,用來偵測磁碟上資料是否有誤 │
    ;│ ECC為錯誤校正碼,是用來偵測並校正磁碟上的資料是否有誤,ECC具有 │
    ;│ 自動校正錯誤功能,而且只有硬碟才有ECC │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 13H,AH=08H │
    ;│取得磁碟機的磁軌參數 │
    ;│? (DL) <= 磁碟機代號 (A:00H,B:01H,C:80H,D:81H) │
    ;│磁面的磁軌數減 1 => (CH) 及 (CL 的 bit6、bit7) │
    ;│磁軌的磁區數 => (CL 的 bit0 ~ bit5) │
    ;│磁面數減 1 => (DH) │
    ;│磁碟機數量 => (DL) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 13H,AH=17H │
    ;│設定磁碟機型式 │
    ;│? (DL) <= 磁碟機代號 (A:00H,B:01H) │
    ;│? (AL) <= 磁碟機型式 │
    ;│磁碟機型式:AL=01H:使用 360K 磁碟機,工作 360K 的磁片 │
    ;│ AL=02H:使用 1.2M 磁碟機,工作 360K 的磁片 │
    ;│ AL=03H:使用 1.2M 磁碟機,工作 1.2M 的磁片 │
    ;│ AL=04H:使用 720K 磁碟機,工作 720K 的磁片 │
    ;│ AL=05H:使用 1.44M 磁碟機,工作 1.44M 的磁片 │
    ;│成功 => (C=0),(失敗 C=1,示誤碼如下) │
    ;│ AH=00H:成功 AH=0AH:硬碟的磁區損壞 │
    ;│ AH=01H:不合法的磁碟機命令 AH=0BH:硬碟的磁軌損壞 │
    ;│ AH=02H:磁區損壞或位址欄有誤 AH=0CH:存取不存在的磁軌 │
    ;│ AH=03H:防寫貼紙未撕 AH=10H:CRC/ECC錯誤 │
    ;│ AH=04H:找不到指定的磁區 AH=11H:資料讀取錯誤,使用ECC校正│
    ;│ AH=05H:硬碟重置錯誤 AH=20H:磁碟控制器失誤 │
    ;│ AH=06H:不是原來的磁片 AH=40H:尋找磁軌錯誤 │
    ;│ AH=07H:硬碟參數錯誤 AH=80H:floppy disk drive 未備妥 │
    ;│ AH=08HMA 忙碌中 AH=AAH:hard disk drive 未備妥 │
    ;│ AH=09HMA搬動記憶區越過64K AH=BBH:所指定的磁碟機找不到 │
    ;│註:CRC為循環重複檢查檢,用來偵測磁碟上資料是否有誤 │
    ;│ ECC為錯誤校正碼,是用來偵測並校正磁碟上的資料是否有誤,ECC具有 │
    ;│ 自動校正錯誤功能,而且只有硬碟才有ECC │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 16H,AH=00H │
    ;│由鍵盤讀取按鍵,即由鍵盤緩衝區讀取按鍵,會等待 │
    ;│按鍵的 ascii 碼 => (AL) │
    ;│按鍵的 scan 碼 => (AH),(AH bit7=0 表按鍵中) 46h Scroll │
    ;│ 01h Esc 19h P 28h ' " 37h Print 47h 7 Home │
    ;│ 2~Bh 1~9,0 1Ah [ { 29h ` ~ 38h R Ctrl 48h 8 Up │
    ;│ 0Ch - _ 1Bh ] } 2Ah L Shift 39h Space 49h 9 PgUp │
    ;│ 0Dh = + 1Ch Enter 2Bh \ | 3Ah Caps 4Ah - │
    ;│ 0Eh 1Dh Ctrl 2Ch Z 3Bh F1 4Bh 4 Left │
    ;│ 0Fh Tab 1Eh A 2Dh X 3Ch F2 4Ch 5 │
    ;│ 10h Q 1Fh S 2Eh C 3Dh F3 4Dh 6 Right │
    ;│ 11h W 20h D 2Fh V 3Eh F4 4Eh + │
    ;│ 12h E 21h F 30h B 3Fh F5 4Fh 1 End │
    ;│ 13h R 22h G 31h N 40h F6 50h 2 Down │
    ;│ 14h T 23h H 32h M 41h F7 51h 3 PgDn │
    ;│ 15h Y 24h J 33h , < 42h F8 52h 0 Ins │
    ;│ 16h U 25h K 34h . > 43h F9 53h . Del │
    ;│ 17h I 26h L 35h / ? 44h F10 57h F11 │
    ;│ 18h O 27h : 36h R Shift 45h Num 58h F12 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 16H,AH=01H │
    ;│檢查鍵盤緩衝區是否有字元可讀 │
    ;│讀取狀況 => (Z=0,有字元可讀),(Z=1,緩衝區是空的) │
    ;│按鍵的 ascii 碼 => (AL) │
    ;│按鍵的 scan 碼 => (AH),(AL bit7=0 表按鍵中) 46h Scroll │
    ;│ 01h Esc 19h P 28h ' " 37h Print 47h 7 Home │
    ;│ 2~Bh 1~9,0 1Ah [ { 29h ` ~ 38h R Ctrl 48h 8 Up │
    ;│ 0Ch - _ 1Bh ] } 2Ah L Shift 39h Space 49h 9 PgUp │
    ;│ 0Dh = + 1Ch Enter 2Bh \ | 3Ah Caps 4Ah - │
    ;│ 0Eh 1Dh Ctrl 2Ch Z 3Bh F1 4Bh 4 Left │
    ;│ 0Fh Tab 1Eh A 2Dh X 3Ch F2 4Ch 5 │
    ;│ 10h Q 1Fh S 2Eh C 3Dh F3 4Dh 6 Right │
    ;│ 11h W 20h D 2Fh V 3Eh F4 4Eh + │
    ;│ 12h E 21h F 30h B 3Fh F5 4Fh 1 End │
    ;│ 13h R 22h G 31h N 40h F6 50h 2 Down │
    ;│ 14h T 23h H 32h M 41h F7 51h 3 PgDn │
    ;│ 15h Y 24h J 33h , < 42h F8 52h 0 Ins │
    ;│ 16h U 25h K 34h . > 43h F9 53h . Del │
    ;│ 17h I 26h L 35h / ? 44h F10 57h F11 │
    ;│ 18h O 27h : 36h R Shift 45h Num 58h F12 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 16H,AH=02H │
    ;│取得鍵盤設定狀態 │
    ;│鍵盤狀態值 => (AL),如下 │
    ;│ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │
    ;│ al = │b7│b6│b5│b4│b3│b2│b1│b0│ │
    ;│ └─┴─┴─┴─┴─┴─┴─┴─┘ │
    ;│ insert ─┘ │ │ │ │ │ │ └─ right shift │
    ;│ caps lock ───┘ │ │ │ │ └─── left shift │
    ;│ num lock ─────┘ │ │ └───── ctrl │
    ;│ scroll lock ───────┘ └─────── alt │
    ;│ bit = 0 表 off │
    ;│ bit = 1 表 on │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 16H,AH=0DAH │
    ;│設定大易輸入法的切換摸式,或取得載入狀況 │
    ;│? (AL) <= 0:退出大易輸入模式,1:切換為大易輸入模式,2:為內部使用 │
    ;│載入狀態 => (AL=55AAH 表有載入) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 17H,AH=00H │
    ;│顯示一個字元至印表機 │
    ;│? (AL) <= 字元 ascii │
    ;│? (DX word) <= 印表機編號 │
    ;│印表機狀態值 => (AH),如下 │
    ;│ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │
    ;│ ah = │b7│b6│b5│b4│b3│b2│b1│b0│ │
    ;│ └─┴─┴─┴─┴─┴─┴─┴─┘ │
    ;│ 印表機忙碌? ─┘ │ │ │ │ │ │ └─ 久候不應? │
    ;│ 取得回應? ───┘ │ │ │ │ └─── 保留 │
    ;│ 紙用盡? ─────┘ │ │ └───── 保留 │
    ;│ 所選印表機編號 ───────┘ └─────── I/O error? │
    ;│ (0:LPT1,1:LPT2) bit = 0 表 否 │
    ;│ bit = 1 表 是 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 17H,AH=01H │
    ;│印表機初始化 │
    ;│? (DX word) <= 印表機編號 │
    ;│印表機狀態值 => (AH),如下 │
    ;│ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │
    ;│ ah = │b7│b6│b5│b4│b3│b2│b1│b0│ │
    ;│ └─┴─┴─┴─┴─┴─┴─┴─┘ │
    ;│ 印表機忙碌? ─┘ │ │ │ │ │ │ └─ 久候不應? │
    ;│ 取得回應? ───┘ │ │ │ │ └─── 保留 │
    ;│ 紙用盡? ─────┘ │ │ └───── 保留 │
    ;│ 所選印表機編號 ───────┘ └─────── I/O error? │
    ;│ (0:LPT1,1:LPT2) bit = 0 表 否 │
    ;│ bit = 1 表 是 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 17H,AH=02H │
    ;│讀取印表機狀態 │
    ;│? (DX word) <= 印表機編號 │
    ;│印表機狀態值 => (AH),如下 │
    ;│ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │
    ;│ ah = │b7│b6│b5│b4│b3│b2│b1│b0│ │
    ;│ └─┴─┴─┴─┴─┴─┴─┴─┘ │
    ;│ 印表機忙碌? ─┘ │ │ │ │ │ │ └─ 久候不應? │
    ;│ 取得回應? ───┘ │ │ │ │ └─── 保留 │
    ;│ 紙用盡? ─────┘ │ │ └───── 保留 │
    ;│ 所選印表機編號 ───────┘ └─────── I/O error? │
    ;│ (0:LPT1,1:LPT2) bit = 0 表 否 │
    ;│ bit = 1 表 是 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 1AH,AH=00H │
    ;│取得目前時脈計數 │
    ;│時脈的 高 word => (CX) │
    ;│時脈的 低 word => (DX) │
    ;│註:將取得的單位除以 18.2065 即可換算成秒 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 1AH,AH=01H │
    ;│設定目前時脈計數 │
    ;│? (CX word) <= 時脈 高 word │
    ;│? (DX word) <= 時脈 低 word │
    ;│註:將計算出的秒數乘以 18.2065 即可換算成時脈計數單位 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 1AH,AH=02H │
    ;│取得系統時間,以 packed BCD 表示 │
    ;│時 => (CH) │
    ;│分 => (CL) │
    ;│秒 => (DH) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 1AH,AH=03H │
    ;│設定系統時間,以 packed BCD 表示 │
    ;│? (CH) <= 時 │
    ;│? (CL) <= 分 │
    ;│? (DH) <= 秒 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 1AH,AH=04H │
    ;│取得系統日期,以 packed BCD 表示 │
    ;│年 => (CX) │
    ;│月 => (DH) │
    ;│日 => (DL) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 1AH,AH=05H │
    ;│設定系統日期,以 packed BCD 表示 │
    ;│? (CX word) <= 年 │
    ;│? (DH) <= 月 │
    ;│? (DL) <= 日 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 1AH,AH=06H │
    ;│設定系統鬧鐘,以 packed BCD 表示 │
    ;│? (CH) <= 時 │
    ;│? (CL) <= 分 │
    ;│? (DH) <= 秒 │
    ;│註:鬧鐘(設定:過了多久後),便會執行 (INT 4AH) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 1AH,AH=07H │
    ;│關掉系統鬧鐘 (disable) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 1AH,AH=08H │
    ;│取出系統鬧鐘,以 packed BCD 表示 │
    ;│時 => (CH) │
    ;│分 => (CL) 
    ;│秒 => (DH) │
    ;│開關 => (DL),(0:disable,1:enable、power off,2:enable、power on)│
    ;│註:鬧鐘(設定:過了多久後),便會執行 (INT 4AH) │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 1AH,AH=0AH │
    ;│取得日期數量 │
    ;│天數 => (CX) │
    ;│註:自 1980/01/01,到現在到底經過多少天 │
    ;└─────────────────────────────────┘
    ;┌─────────────────────────────────┐
    ;│BIOS 呼叫 INT 1AH,AH=0BH │
    ;│設定日期數量 │
    ;│? (CX word) <= 天數 │
    ;│註:自 1980/01/01,到現在到底經過多少天 

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>