hays

          海納百川
          posts - 25, comments - 48, trackbacks - 0, articles - 0
            BlogJava :: 首頁 ::  :: 聯系 :: 聚合  :: 管理

          日歷

          <2009年5月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          公告

          相冊

          我的好友

          搜索

          •  

          積分與排名

          • 積分 - 26288
          • 排名 - 1496

          最新評論

           1 .code16
           2 .text                  
           3     mov     %cs,%ax
           4     mov     %ax,%ds
           5     mov     %ax,%es
           6     call    DispStr
           7     jmp        .
           8 DispStr: 
           9     mov     $BootMessage, %ax
          10     mov     %ax,%bp
          11     mov     $32,%cx        #init the length of word.
          12     mov     $0x1301,%ax
          13     mov     $0x00c,%bx        #page 0, black backgroud and red word
          14     mov     $0,%dl
          15     int     $0x10        #int 10h,display the screen
          16     ret
          17 BootMessage:.ascii "Hays, Welcome to OS world!"
          18 .org 510
          19 .word 0xaa55
          這段是boot.S,也就是開機程序,基本的思想是將軟盤的第一扇區文件加載到內尋的0x7c00地址,nasm可以通過.org 07c00實現,linux通過下面的Hinix.old實現.

          SECTIONS
          {
              . = 0x7c00;
              .text :
              {
                  _ftext = .;  /*Program will be loaded to 0x7c00*/
                 
              } = 0
          }

          通過一些文檔查閱知道了int 10中斷相當于c里面的display()函數,當然前面的一些寄存器設置就是用來為中斷進行參數配置了,現在也就知道這么多。感覺吧,進行底層開發要查的硬件手冊肯定特別多。





















          主站蜘蛛池模板: 荆州市| 保康县| 广元市| 化州市| 北流市| 芜湖县| 自治县| 忻州市| 河源市| 和政县| 汪清县| 钟祥市| 利川市| 榕江县| 甘肃省| 镇赉县| 茂名市| 枣庄市| 玛曲县| 神农架林区| 会理县| 博罗县| 葫芦岛市| 香河县| 罗江县| 仙游县| 永德县| 舞钢市| 娱乐| 佛山市| 合阳县| 章丘市| 廊坊市| 郑州市| 陇西县| 盐城市| 开化县| 潜山县| 定远县| 漳州市| 讷河市|