對硬碟進行操作的常用埠是1f0h~1f7h號埠,各埠含義如下:
埠號 讀還是寫 具體含義
1f0h 讀/寫 用來傳送讀/寫的資料(其內容是正在傳輸的乙個位元組的資料)
1f1h 讀 用來讀取錯誤碼
1f2h 讀/寫 用來放入要讀寫的扇區數量
1f3h 讀/寫 用來放入要讀寫的扇區號碼
1f4h 讀/寫 用來存放讀寫柱面的低8位位元組
1f5h 讀/寫 用來存放讀寫柱面的高2位位元組(其高6位恒為0)
1f6h 讀/寫 用來存放要讀/寫的磁碟號及磁頭號
第7位 恒為1
第6位 恒為0
第5位 恒為1
第4位 為0代表第一塊硬碟、為1代表第二塊硬碟
第3~0位 用來存放要讀/寫的磁頭號
1f7h 讀 用來存放讀操作後的狀態
第7位 控制器忙碌
第6位 磁碟驅動器準備好了
第5位 寫入錯誤
第4位 搜尋完成
第3位 為1時扇區緩衝區沒有準備好
第2位 是否正確讀取磁碟資料
第1位 磁碟每轉一周將此位設為1,
第0位 之前的命令因發生錯誤而結束
寫 該位埠為命令埠,用來發出指定命令
為50h 格式化磁軌
為20h 嘗試讀取扇區
為21h 無須驗證扇區是否準備好而直接讀扇區
為22h 嘗試讀取長扇區(用於早期的硬碟,每扇可能不是512位元組,而是128位元組到1024之間的值)
為23h 無須驗證扇區是否準備好而直接讀長扇區
為30h 嘗試寫扇區
為31h 無須驗證扇區是否準備好而直接寫扇區
為32h 嘗試寫長扇區
為33h 無須驗證扇區是否準備好而直接寫長扇區
注:當然看完這個表你會發現,這種讀寫埠的方法其實是基於磁頭、柱面、扇區的硬碟讀寫方法,不過大於8g的硬碟的讀寫方法也是通過埠1f0h~1f7h來實現的^_^
乙個通過對硬碟輸入輸出埠操作來讀寫硬碟的例項
讓我們來看乙個關於int13h讀寫硬碟程式例項。在例子中詳細說明了硬碟的讀寫操作所用到的埠,並且把通過int13h讀出的主引導區得到的資料和通過輸入輸出讀主引導區得到的資料進行比較,從而證實這兩種操作功能相同,程式片段如下:
mov dx,1f6h ; 要讀入的磁碟號及磁頭號
mov al,0a0h ;磁碟0,磁頭0
out dx,al
mov dx,1f2h ;要讀入的扇區數量
mov al,1 ;讀乙個扇區
out dx,al
mov dx,1f3h ;要讀的扇區號
mov al,1 ;扇區號為1
out dx,al
mov dx,1f4h ;要讀的柱面的低8位
mov al,0 ; 柱面低8位為0
out dx,al
mov dx,1f5h ; 柱面高2位
mov al,0 ; 柱面高2位為0(通過1f4h和1f5h埠我們可以確定
; 用來讀的柱面號是0)
out dx,al
mov dx,1f7h ;命令埠
mov al,20h ; 嘗試讀取扇區
out dx,al
still_going:
in al,dx
test al,8 ;扇區緩衝是否準備好
jz still_going ;如果扇區緩衝沒有準備好的話則跳轉,直到準備好才向下執行。
mov cx,512/2 ;設定迴圈次數(512/2次)
mov di,offset buffer
mov dx,1f0h ;將要傳輸的乙個位元組的資料
rep insw ;傳輸資料
; ------
mov ax,201h ;以下是用int13h讀硬碟的0磁頭、0柱面、1扇區
mov dx,80h
mov cx,1
mov bx,offset buffer2
int 13h
mov cx,512 ;以下部分用來比較2種方法讀出的硬碟資料
mov si,offset buffer
mov di,offset buffer2
repe cmpsb
jne failure
mov ah,9
mov dx,offset readmsg
int 21h
jmp good_exit
failure:
mov ah,9
mov dx,offset failmsg
int 21h
good_exit: ;以下部分用來結束程式
mov ax,4c00h ;退出程式
硬碟介面型別
硬碟介面是硬碟與主機系統間的連線部件,作用是在硬碟快取和主機記憶體之間傳輸資料。不同的硬碟介面決定著硬碟與計算機之間的連線速度,在整個系統中,硬碟介面的優劣直接影響著程式執行快慢和系統效能好壞。從整體的角度上,硬碟介面分為ide sata scsi和光纖通道四種,ide介面硬碟多用於家用產品中,也部...
硬碟介面型別
開放分類 硬體 電腦 it 計算機 cpu硬碟 介面是硬碟與主機系統間的連線部件,作用是在硬碟快取和主機記憶體 之間傳輸資料。不同的硬碟介面決定著硬碟與計算機之間的連線速度,在整個系統中,硬碟介面的優劣直接影響著程式執行快慢和系統效能好壞。從整體的角度上,硬碟介面分為ide sata scsi 和光...
硬碟介面簡介
硬碟介面是硬碟與主機系統間的連線部件,作用是在硬碟快取和主機記憶體之間傳輸資料。不同的硬碟介面決定著硬碟與計算機之間的連線速度,在整個系統中,硬碟介面的優劣直接影響著程式執行快慢和系統效能好壞。從整體的角度上,硬碟介面分為ide sata scsi和光纖通道四種,ide介面硬碟多用於家用產品中,也部...