王源 彙編語言 課設2 8086-boot

代碼見https://github.com/SuCicada/8086-Boot

第二版

2019/5/31 23:06
見 class2i.asm 文件
1、偏移地址可以從0開始算了!
將要拷貝軟盤中的代碼放到新的data段中,然後在 0:7c00h 處的代碼一開始就跳轉 07c0:0h 處,這樣就解決了偏移地址無法從0開始算的問題,可以拋棄 偏移量 site 的做法了。
2、引導操作系統一步到位
廢棄了將代碼(what拷貝硬盤到7c00h處,並從7c00h執行)拷貝到 0:200h 這個安全地方執行的做法。
採取的新方法就是,將引導操作系統這部分功能的代碼--移動到 0:7c00h - 0:07dffh 這512字節之外的地方,這樣就安全了!目前是放到了 3功能(顯示時間)之後
3、獨立的信息顯示模塊
show_info 函數單獨拿出來,又減少了100行代碼
4、更少的代碼
從原先的1100行降到890行,少了210行。


第一版

主要從2019/5/17 到2019/5/21 日,大約歷經40小時

見 class2i.asm 文件
1.關於硬盤拷貝的位置
引導操作系統時,硬盤這個 80h 磁盤,必須將一開始的部分拷貝到 0:7c00h 處,不能換成是別的地方,所以這就還在拷貝的時候覆蓋原有的代碼,導致拷貝之後無法跳轉到 0:7c00h 處執行。
所以採用的是:將拷貝與執行代碼,一併拷貝到其他的安全的地方,比如 0:200h 處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章