<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 303  文章 - 883  trackbacks - 0
    <2008年2月>
    272829303112
    3456789
    10111213141516
    17181920212223
    2425262728291
    2345678

    歡迎光臨! 
    閑聊 QQ:1074961813

    隨筆分類(357)

    我管理的群

    公共blog

    • n維空間
    • Email : java3d@126.com 群 : 12999758

    參與管理的論壇

    好友的blog

    我的其他blog

    朋友的網(wǎng)站

    搜索

    •  

    最新評論

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

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

    參看資料:

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

     

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

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


    地震讓大伙知道:居安思危,才是生存之道。
    posted on 2008-02-18 21:07 小尋 閱讀(1252) 評論(0)  編輯  收藏 所屬分類: kernel
    主站蜘蛛池模板: 日本免费中文字幕在线看| 久久亚洲精品成人av无码网站| 精品一区二区三区免费观看| 亚洲国产精品无码一线岛国| 一本岛高清v不卡免费一三区| 亚洲精品无码久久久久秋霞| 国产亚洲色婷婷久久99精品91| 久久精品无码专区免费青青| 亚洲精品9999久久久久无码 | 亚洲Av无码专区国产乱码DVD| 黄+色+性+人免费| 一级中文字幕乱码免费| 亚洲国产精品美女| 中文字幕日韩亚洲| 青娱分类视频精品免费2| 成人无码精品1区2区3区免费看| 亚洲码一区二区三区| 亚洲国产精品综合久久一线| 51视频精品全部免费最新| j8又粗又长又硬又爽免费视频| 33333在线亚洲| 国产亚洲综合色就色| 亚洲制服丝袜在线播放| 亚洲精品WWW久久久久久| 99久久久国产精品免费无卡顿| 一区二区三区免费高清视频| 亚洲中文字幕无码av| 亚洲狠狠综合久久| 亚洲综合最新无码专区| 成人免费毛片视频| 日本片免费观看一区二区| 人妻免费一区二区三区最新| 国产天堂亚洲精品| 亚洲成a人片在线看| 亚洲蜜芽在线精品一区| 亚洲AV综合色区无码一区爱AV| 亚洲高清无码在线观看| 国产精品免费_区二区三区观看| 国产1000部成人免费视频| 四虎影视成人永久免费观看视频 | 妞干网免费观看视频|