1一152期六合图库资料
隨筆 - 303  文章 - 883  trackbacks - 0
<2008年2月>
272829303112
3456789
10111213141516
17181920212223
2425262728291
2345678

歡迎光臨! 
閑聊 QQ:1074961813

隨筆分類(357)

我管理的群

公共blog

參與管理的論壇

好友的blog

我的其他blog

朋友的網站

搜索

  •  

最新評論

from: http://blog.sina.com.cn/s/blog_5028978101008wjl.html

該代碼來自linux0.11內核代碼/boot/bootsect.s
該段代碼的作用是使用int 13h 把磁盤上的setup模塊(4個扇區)加載到內存中,位置在bootsect.s(0x90000+512字節 = 0x90200處)之后,整個過程主要是操作 ax , bx , cx , dx 等四個通用寄存器。其實現的步驟:
SETUPLEN = 4          !setup模塊的長度.
INITSEG 
= 0x90200     !setup模塊被加載的地址.
 .
 load_setup:
        mov   dx 
, #0x0000 !DH = 0磁頭 DL=軟盤驅動器,
                           !(00H~7FH:軟盤;80H~0FFH:硬盤;
                           !ES:BX=緩沖區的地址).
        mov   cx , #0x0002 !CH = 0柱面  CL = 第二扇區.
        mov   bx 
, #0x0200 !前面代碼可知:es = 0x9000 所
                           !以、緩沖區es:bx = 0x9000:0x0200
                           ! = 0x90200,這就意味著,磁盤中
                           !的數據將從這個地址開始加載入內存.
        mov   ax , #0x0200 + SETUPLEN !ah = 0x02 為讀扇區的入
                           !口參數 AL為要讀入的扇區數4 ,
                           !到此參數設置完畢.
        int      0x13         !發出中斷信號,開始讀取.
                           !進位標志CF(Carry Flag)=0 表示操作
                           !成功,AH=00H,AL=傳輸的扇區數,否
                           !則,AH=狀態代碼.
        jnc   ok_load_setup   !故名思意,如果成功就跳到下面
                              !ok_load_setup處,否則執行下面的代碼,
                              !復位磁盤再次執行這段代碼
        mov   dx 
, #0x0000    !再次設置驅動器為軟盤驅動器
        mov   ax 
, #0x0000    !入口參數為 ah=00h 重啟磁盤(軟盤系
                              !統復位),這個時候由于前面的操作磁
                              !盤已經轉到某個位置,所以必須重新啟動
                              !磁盤,讓磁頭歸位.
        int   0x13
        j     load_setup      !跳轉回去繼續執行,如果總是失敗系統
                              !將總執行這段代碼.
ok_load_setup:
         .

參看資料:

直接磁盤服務(Direct Disk Service——INT 13H)  

 

功能00H 
功能描述:磁盤系統復位 
入口參數:AH=00H 
DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬盤 
出口參數:CF=0——操作成功,AH=00H,否則,AH=狀態代碼,參見功能號01H中的說明 

 功能02H  
功能描述:讀扇區 
入口參數:AH=02H 
AL=扇區數 
CH=柱面 
CL=扇區 
DH=磁頭 
DL=驅動器,00H~7FH:軟盤;80H~0FFH:硬盤 
ES:BX=緩沖區的地址 
出口參數:CF=0——操作成功,AH=00H,AL=傳輸的扇區數,否則,AH=狀態代碼,參見功能號01H中的說明 


地震讓大伙知道:居安思危,才是生存之道。
posted on 2008-02-18 21:07 小尋 閱讀(902) 評論(0)  編輯  收藏 所屬分類: kernel

只有注冊用戶登錄后才能發表評論。


網站導航:
 
1一152期六合图库资料 双色球投注单填写 必赢客app 六码怎样倍投 1分快三的投注技巧 网络扎金花背后的骗局 时时彩包胆是怎么玩 重庆时时三星单选走势图 湖北福彩快三计划软件 腾讯分分分后三包胆 重庄时时彩开奖走势图