Posted on 2008-09-28 09:25
沒畫完的畫 閱讀(203)
評論(0) 編輯 收藏 引用 所屬分類:
Reverse Engineering & ASM
00H —磁盤系統復位0EH —讀扇區緩沖區
01H —讀取磁盤系統狀態0FH —寫扇區緩沖區
02H —讀扇區10H —讀取驅動器狀態
03H —寫扇區11H —校準驅動器
04H —檢驗扇區12H —控制器RAM診斷
05H —格式化磁道13H —控制器驅動診斷
06H —格式化壞磁道14H —控制器內部診斷
07H —格式化驅動器15H —讀取磁盤類型
08H —讀取驅動器參數16H —讀取磁盤變化狀態
09H —初始化硬盤參數17H —設置磁盤類型
0AH —讀長扇區18H —設置格式化媒體類型
0BH —寫長扇區19H —磁頭保護
0CH —查尋1AH —格式化ESDI驅動器
0DH —硬盤系統復位
(1)、功能00H
功能描述:磁盤系統復位
入口參數:AH=00H
DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬盤
出口參數:CF=0——操作成功,AH=00H,否則,AH=狀態代碼,參見功能號01H中的說明
(2)、功能01H
功能描述:讀取磁盤系統狀態
入口參數:AH=01H
DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬盤
出口參數:AH=00H,AL=狀態代碼,其定義如下:
00H — 無錯 01H — 非法命令
02H — 地址目標未發現03H — 磁盤寫保護(軟盤)
04H — 扇區未發現05H — 復位失敗(硬盤)
06H — 軟盤取出(軟盤)07H — 錯誤的參數表(硬盤)
08H — DMA越界(軟盤)09H — DMA超過64K界限
0AH — 錯誤的扇區標志(硬盤)0BH — 錯誤的磁道標志(硬盤)
0CH — 介質類型未發現(軟盤)0DH — 格式化時非法扇區號(硬盤)
0EH — 控制數據地址目標被發現(硬盤)0FH — DMA仲裁越界(硬盤)
10H — 不正確的CRC或ECC編碼11H — ECC校正數據錯(硬盤)
CRC:Cyclic Redundancy Check code
ECC:Error Checking & Correcting code
20H — 控制器失敗40H — 查找失敗
80H — 磁盤超時(未響應)AAH — 驅動器未準備好(硬盤)
BBH — 未定義的錯誤(硬盤)CCH — 寫錯誤(硬盤)
E0H — 狀態寄存器錯(硬盤)FFH — 檢測操作失敗(硬盤)
(3)、功能02H
功能描述:讀扇區
入口參數:AH=02H
AL=扇區數
CH=柱面
CL=扇區
DH=磁頭
DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬盤
ES:BX=緩沖區的地址
出口參數:CF=0——操作成功,AH=00H,AL=傳輸的扇區數,否則,AH=狀態代碼,參見功能號01H中的說明
(4)、功能03H
功能描述:寫扇區
入口參數:AH=03H
AL=扇區數
CH=柱面
CL=扇區
DH=磁頭
DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬盤
ES:BX=緩沖區的地址
出口參數:CF=0——操作成功,AH=00H,AL=傳輸的扇區數,否則,AH=狀態代碼,參見功能號01H中的說明
(5)、功能04H
功能描述:檢驗扇區
入口參數:AH=04H
AL=扇區數
CH=柱面
CL=扇區
DH=磁頭
DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬盤
ES:BX=緩沖區的地址
出口參數:CF=0——操作成功,AH=00H,AL=被檢驗的扇區數,否則,AH=狀態代碼,參見功能號01H中的說明
(6)、功能05H
功能描述:格式化磁道
入口參數:AH=05H
AL=交替(Interleave)
CH=柱面
DH=磁頭
DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬盤
ES:BX=地址域列表的地址
出口參數:CF=0——操作成功,AH=00H,否則,AH=狀態代碼,參見功能號01H中的說明
(7)、功能06H
功能描述:格式化壞磁道
入口參數:AH=06H
AL=交替
CH=柱面
DH=磁頭
DL=80H~0FFH:硬盤
ES:BX=地址域列表的地址
出口參數:CF=0——操作成功,AH=00H,否則,AH=狀態代碼,參見功能號01H中的說明
(8)、功能07H
功能描述:格式化驅動器
入口參數:AH=07H
AL=交替
CH=柱面
DL=80H~0FFH:硬盤
出口參數:CF=0——操作成功,AH=00H,否則,AH=狀態代碼,參見功能號01H中的說明
(9)、功能08H
功能描述:讀取驅動器參數
入口參數:AH=08H
DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬盤
出口參數:CF=1——操作失敗,AH=狀態代碼,參見功能號01H中的說明,否則, BL=01H — 360K
=02H — 1.2M
=03H — 720K
=04H — 1.44M
CH=柱面數的低8位
CL的位7-6=柱面數的該2位
CL的位5-0=扇區數
DH=磁頭數
DL=驅動器數
ES:DI=磁盤驅動器參數表地址
(10)、功能09H
功能描述:初始化硬盤參數
入口參數:AH=09H
DL=80H~0FFH:硬盤(還有有關參數表問題,在此從略)
出口參數:CF=0——操作成功,AH=00H,否則,AH=狀態代碼,參見功能號01H中的說明
(11)、功能0AH
功能描述:讀長扇區,每個扇區隨帶四個字節的ECC編碼
入口參數:AH=0AH
AL=扇區數
CH=柱面
CL=扇區
DH=磁頭
DL=80H~0FFH:硬盤
ES:BX=緩沖區的地址
出口參數:CF=0——操作成功,AH=00H,AL=傳輸的扇區數,否則,AH=狀態代碼,參見功能號01H中的說明
(12)、功能0BH
功能描述:寫長扇區,每個扇區隨帶四個字節的ECC編碼
入口參數:AH=0BH
AL=扇區數
CH=柱面
CL=扇區
DH=磁頭
DL=80H~0FFH:硬盤
ES:BX=緩沖區的地址
出口參數:CF=0——操作成功,AH=00H,AL=傳輸的扇區數,否則,AH=狀態代碼,參見功能號01H中的說明
(13)、功能0CH
功能描述:查尋
入口參數:AH=0CH
CH=柱面的低8位
CL(7-6位)=柱面的高2位
DH=磁頭
DL=80H~0FFH:硬盤
出口參數:CF=0——操作成功,AH=00H,否則,AH=狀態代碼,參見功能號01H中的說明
(14)、功能0DH
功能描述:硬盤系統復位
入口參數:AH=0DH
DL=80H~0FFH:硬盤
出口參數:CF=0——操作成功,AH=00H,否則,AH=狀態代碼,參見功能號01H中的說明
(15)、功能0EH
功能描述:讀扇區緩沖區
入口參數:AH=0EH
ES:BX=緩沖區的地址
出口參數:CF=0——操作成功,否則,AH=狀態代碼,參見功能號01H中的說明
(16)、功能0FH
功能描述:寫扇區緩沖區
入口參數:AH=0FH
ES:BX=緩沖區的地址
出口參數:CF=0——操作成功,否則,AH=狀態代碼,參見功能號01H中的說明
(17)、功能10H
功能描述:讀取驅動器狀態
入口參數:AH=10H
DL=80H~0FFH:硬盤
出口參數:CF=0——操作成功,AH=00H,否則,AH=狀態代碼,參見功能號01H中的說明
(18)、功能11H
功能描述:校準驅動器
入口參數:AH=11H
DL=80H~0FFH:硬盤
出口參數:CF=0——操作成功,AH=00H,否則,AH=狀態代碼,參見功能號01H中的說明
(19)、功能12H
功能描述:控制器RAM診斷
入口參數:AH=12H
出口參數:CF=0——操作成功,否則,AH=狀態代碼,參見功能號01H中的說明
(20)、功能13H
功能描述:控制器驅動診斷
入口參數:AH=13H
出口參數:CF=0——操作成功,否則,AH=狀態代碼,參見功能號01H中的說明
(21)、功能14H
功能描述:控制器內部診斷
入口參數:AH=14H
出口參數:CF=0——操作成功,否則,AH=狀態代碼,參見功能號01H中的說明
(22)、功能15H
功能描述:讀取磁盤類型
入口參數:AH=15H
DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬盤
出口參數:CF=1——操作失敗,AH=狀態代碼,參見功能號01H中的說明, 否則,AH=00H — 未安裝驅動器
=01H — 無改變線支持的軟盤驅動器
=02H — 帶有改變線支持的軟盤驅動器
=03H — 硬盤,CX:DX=512字節的扇區數
(23)、功能16H
功能描述:讀取磁盤變化狀態
入口參數:AH=16H
DL=00H~7FH:軟盤
出口參數:CF=0——磁盤未改變,AH=00H,否則,AH=06H,參見功能號01H中的說明
(24)、功能17H
功能描述:設置磁盤類型
入口參數:AH=17H
DL=00H~7FH:軟盤 AL=00H — 未用
=01H — 360K在360K驅動器中
=02H — 360K在1.2M驅動器中
=03H — 1.2M在1.2M驅動器中
=04H — 720K在720K驅動器中
出口參數:CF=0——操作成功,AH=00H,否則,AH=狀態編碼,參見功能號01H中的說明
(25)、功能18H
功能描述:設置格式化媒體類型
入口參數:AH=18H
CH=柱面數
CL=每磁道的扇區數
DL=00H~7FH:軟盤
出口參數:CF=0——操作成功,AH=00H,ES:DI=介質類型參數表地址,否則,AH=狀態編碼,參見功能號01H中的說明
(26)、功能19H
功能描述:磁頭保護,僅在PS/2中有效,在此從略
(27)、功能1AH
功能描述:格式化ESDI驅動器,僅在PS/2中有效,在此從略