Re: [問題] 怎麼切換到保護模式

看板ASM (組合語言)作者 (飛揚)時間16年前 (2008/08/31 10:49), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《swhpp (qq)》之銘言: : 最近要寫一個可以讀取cpu msr的程式 : 在網路上看到可用rdmsr指令但會有 : instruction or register not accepted in current CPU mode : 的錯誤,查了一下有人說要在保護模式下才可, : 不知道有沒有大大會,或者有沒有其他辦法可以實現讀取cpu msr : 麻煩大家賜教囉^^ : 另外我在網路上看到有用改CR0的方式 : 但我用MOV EAX,0 : MOV CR0,EAX : 也是一樣有PRIVILEGE INSTRUCTION的問題 : 目前只讀得到cpuid不知道對取得cpu msr是否有幫助? : 不曉得大家有沒有什麼方法可以實現? 在386↑ 基本上進到保護模式都是用 mov eax, cr0 or eax, 1 mov cr0, eax 然後經過一個跨段的jump之後,重新載入選擇子,才是真的進到保護模式 jmp dword SELECTOR32:CODEOFF32 ;用nasm的 不過 windows早就工作在保護模式下了 所以像crX、trX.....等等的暫存器 非在ring0下不可存取 如果你要玩保護模式的東西 除了從軟碟開機 真實模式下啟動外 (DOS 或 自己寫) 可以用Virtual PC 來玩 比較方便XD 另外 如果真的想玩這方面的 推薦一本書: 《自己動手寫作業系統》 在台灣由 文魁資訊出版 于淵‧編著 大陸 電子工業出版社的書翻譯過來的XDDD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.137.72.12

09/03 11:04, , 1F
去INTEL 找IA32 spec 研究研究吧 會有幫助的
09/03 11:04, 1F
文章代碼(AID): #18kWQv_3 (ASM)
討論串 (同標題文章)
文章代碼(AID): #18kWQv_3 (ASM)