1. 程式人生 > >《X86彙編 從真實模式到保護模式》 關於Bochsdbg二次啟動錯誤的解決方案

《X86彙編 從真實模式到保護模式》 關於Bochsdbg二次啟動錯誤的解決方案

1.前言:

在本書中,Bochsdbg是一個非常重要的除錯工具,關於bochsrc檔案的配置,在檔案中的配置已經給出了,按照這步驟來完全可以。
第一次時按步驟配置,之後使用“斷點”跳轉到0x7c00主引導扇區時完全可以,但當往下學習學習到下一章再次執行時,發現無法跳轉到主引導扇區,經過多次嘗試,終於找到一種可行的解決方案,再次記錄一下,希望可以對其他人有幫助。

2.問題:

1.錯誤1

再次開啟Bochsdbg未載入
再次啟動未載入

2.錯誤2

當開啟並載入Bochsdbg,可以進入除錯介面,但很明顯可以看到,只能在BIOS程式中執行,無法執行到我們所編寫好的主引導扇區。
重新載入
這裡寫圖片描述

3.解決方案:

我們瀏覽載入的虛擬硬碟所在的資料夾,發現出現了個LOCK載入格式的檔案,但其位元組數為零。

我們需要刪除這個LOCK檔案,然後在Bochsdbg再重新載入Bochsrc檔案,則即可執行

注意:我們在載入bochsrc檔案時,要退出Virtual Box這個軟體,因為它在用到虛擬硬碟,故Vitrual Box對它進行記憶體保護,我們用bochdbg時無法載入的情況。

可以看出,我們在這操作之後,完美從BIOS程式跳轉到我們所向虛擬磁碟中所載入的主引導扇區程式碼。
每次載入生成一個LOCK檔案

成功跳轉執行

4.問題分析:

這只是問題猜測,對於Bochdbg,當啟動時,會自動生成一個載入檔案,但當資料夾中出現相同檔案,可能因為某種原因阻止這次系統的載入,我們只要刪除這個LOCK檔案就可以了。