一个高难度的问题(在线等待)

liangjuan01 2003-11-16 08:16:21
请问哪位高手会用INT 13H的各项功能,要详细的,特别是AH=05H的那个。
...全文
81 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sgaosslotus 2003-11-19
  • 打赏
  • 举报
回复
怎么都是繁体字啊,过!
gad1star 2003-11-17
  • 打赏
  • 举报
回复
;┌─────────────────────────────────┐
;│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=08H:DMA 忙碌中 AH=AAH:hard disk drive 未備妥 │
;│ AH=09H:DMA搬動記憶區越過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=08H:DMA 忙碌中 AH=AAH:hard disk drive 未備妥 │
;│ AH=09H:DMA搬動記憶區越過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=08H:DMA 忙碌中 AH=AAH:hard disk drive 未備妥 │
;│ AH=09H:DMA搬動記憶區越過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=08H:DMA 忙碌中 AH=AAH:hard disk drive 未備妥 │
;│ AH=09H:DMA搬動記憶區越過64K AH=BBH:所指定的磁碟機找不到 │
;│註:CRC為循環重複檢查檢,用來偵測磁碟上資料是否有誤 │
;│ ECC為錯誤校正碼,是用來偵測並校正磁碟上的資料是否有誤,ECC具有 │
;│ 自動校正錯誤功能,而且只有硬碟才有ECC │
;└─────────────────────────────────┘
gad1star 2003-11-17
  • 打赏
  • 举报
回复
;┌─────────────────────────────────┐
;│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=08H:DMA 忙碌中 AH=AAH:hard disk drive 未備妥 │
;│ AH=09H:DMA搬動記憶區越過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:DMA 忙碌中 AH=AAH:hard disk drive 未備妥 │
;│ AH=09H:DMA搬動記憶區越過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:DMA 忙碌中 AH=AAH:hard disk drive 未備妥 │
;│ AH=09H:DMA搬動記憶區越過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=08H:DMA 忙碌中 AH=AAH:hard disk drive 未備妥 │
;│ AH=09H:DMA搬動記憶區越過64K AH=BBH:所指定的磁碟機找不到 │
;│註:CRC為循環重複檢查檢,用來偵測磁碟上資料是否有誤 │
;│ ECC為錯誤校正碼,是用來偵測並校正磁碟上的資料是否有誤,ECC具有 │
;│ 自動校正錯誤功能,而且只有硬碟才有ECC │
;└─────────────────────────────────┘

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧