boot and loader

來源:互聯網
上載者:User

標籤:格式化   段地址   load   使用   系統   添加   要求   扇區   定義   

boot and loaderboot 程式的所有作用
  • 清屏
  • 將游標移到螢幕左上方
  • 顯示 Start Boot 提示資訊
  • 載入 loader 程式的代碼到 0x10000 實體記憶體地址
  • 將CPU的段地址設定為 0x1000, 位移量為 0x0000
boot 程式(內建 FAT12 檔案系統的開機磁區的資訊)的編寫
  • 注意boot不能實現FAT12檔案系統, 因為boot的要求是512B, 但是使用FAT12檔案系統的前提是有開機磁區的資訊, 所以在boot定義好, 到時都我們要將我們的磁碟片格式化成FAT12檔案系統
  • 第一行 org 0x7c00, 告訴CPU指令CS和IP的值
  • 初始化DS, ES, SS, SP, 其中SP為0x7c00
  • 填寫 FAT12 的引導資料
  • 注意:
    • 寫完一部分如果要測試的話需要加上jmp $讓程式一直運行才行否則不會有任何的顯示
    • 在彙編中有函數和標籤兩個概念, 我們一般這樣規定, 函數使用call指令調用, 在該函數中我們要開闢一個新的棧, 如果要為cx等寄存器賦值的話, 需要將他們的值儲存起來, 放到棧中, 在函數結束之前回複cx等寄存器中的值; 而標籤使用jmp, jz等指令執行, 他們不需要必須儲存cx等值, 而是視需求而定, 一般來說函數為模組, 而標籤為流程
    • 每一個Label結束之後都應該添加一個跳轉jmp指令, 使得程式執行的流程清晰

boot and loader

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.