我正在編寫第二階段啓動加載程序,其部分職責是從16位實模式進入32位保護模式。NASM - 在一個文件中使用幾個BITS指令
我的代碼有一些初始化實模式代碼,一些實模式函數,保護模式代碼和一些保護模式代碼。下面是我做了什麼(實際的代碼是相同的順序):
新增
BITS 16
第一實模式功能的啓動之前。新增
BITS 32
OR
荷蘭國際集團eax
1之後的第一個受保護模式功能添加
BITS 16
初始化實模式代碼添加
BITS 32
初始化受保護模式的代碼(mov cr0, eax
之前基本上前前前。
This沒有工作,所以我讀了NASM的手冊,說它沒有必要使用這個指令。我刪除了所有這些代碼,並且代碼正常工作!
那麼我的方法有什麼錯誤?另外,我是不是混淆了bitness和處理器模式?