| 行號 | 說明 |
| 02~12 | 計算 chs 模式的讀取位置,包括 sector start、head start、cylinder start。 |
| 02~04 | 取得磁區位置的高四位元組,不為0時,即為磁碟幾何錯誤。 |
| 05 | 取得磁區位置的低四位元組。 |
| 06 | 清除 edx 為 0。 |
| 07 | eax 除以 si,取得磁軌數目 eax 和磁區位置值 edx。 |
| 08 | 將磁區值 dl 設定給 chs 模式 PBP 的 sector start 欄位。 |
| 09 | 清除 edx 為 0。 |
| 010 | eax 除以 si,取得磁柱數目 eax 和磁頭位置值 edx。 |
| 11 | 將磁頭值 dl 設定給 chs 模式 PBP 的 header start 欄位。 |
| 12 | 將磁柱數目 eax 設定給 chs 模式 PBP 的 cylinder start 欄位。 |
| 13~14 | 當 cylinder start 大於或等於 cylinders,表示磁碟太小,產生磁碟幾何錯誤。 |
| 15 | 取得磁軌的最大磁區數。 |
| 16 | 最大磁區數減去sector start,得到該磁軌內可讀的磁區數。 |
| 17~19 | 當可讀取的磁區數大於需要的磁區數目,重新設定要讀的磁區數目為需要的磁區數目。 |
| 21 | 計算此次讀取後剩下的磁區數目值,目前磁區數目減去要讀取的磁區數目。 |
| 22 | 計算此次讀取後的磁區位置值,目前磁區位置加上要讀取的磁區數目。如果有進位,把進位值加到磁區位置的高四位元組。 |
| 23~28 | 因為 chs 模式下,cyliner high 會併到 sector start 位元組的高位元處,即 ch[1]ch[0]+s[5]s[4]s[3]s[2]s[1]s[0]。
將 cylinder high 向左旋六位元,再將 sector start 值加一,再將二者加在一起,即得到此組合值,存入 cl。 |
| 29 | 取得 cylinder low,存入 ch。 |
| 30~31 | 取得磁碟號碼,再存回堆疊,因為還會用到。 |
| 32 | 取得 header start,存入 dh。 |
| 30~31 | 將要讀取的磁區數目 ax,存入堆疊。 |
| 34~35 | 取得緩衝區的節區號碼,存入 es,準備用來存入讀取的磁碟資料。 |
| 36 | 清除 bx。 |
| 37 | 設定 ah 為 0x02,表示要執行 chs 磁碟讀取命令。 |
| 38 | 呼叫 bios 中斷服務 0x13,執行磁碟讀取命令。 |
| 39 | 當 cpu 的 cf 旗號為1,表示讀取錯誤。 |
| 40 | 將 es 中的 0x7000 存入 bx。 |