X86 CPU First instruction Executed
跟隨著硬體復位, X86 CPU第一條指令在實體地址FFFFFFF0H被提取和執行。這個地址即是出於CPU的最高實體地址4G減去16個位元組的地方。BIOS初始化程式碼必起始於該地址。
在真實模式下,地址FFFFFFF0H在CPU 可定址的1M位元組範圍之外。那麼CPU是怎樣初始化到這個開始地址,請看下面描述。CS register由兩部分組成:可見的段selector和隱藏的段基地址部分。在真實模式下,段基地址一般是由16-bit的段selector值左移4bits來產生20-bit的段基地址。然而,在一次硬體復位的過程中,在CS中的段selector被裝載成F000H,而且段基地址被裝載為FFFF0000H。所以CPU開始地址就是段基地址的值加上在EIP register中的值(即FFFF0000H + FFF0H = FFFFFFF0H )。
在一次硬體復位後,CS register 第一次被裝載為一個新的值,在真實模式下,CPU會遵循正常的規則去進行地址轉換(那就是,CS base address = CS Segsent selector * 16)。為了保證在CS resgister中的段基地址不變直到基於BIOS初始化程式碼的Eprom被完成,在其中,不允許有導致CS selector值發生改變的far jump or far call,or interrupt產生。
相關文章
- Linux下如何使用X86 CPU的GPIOLinux
- Visual Instruction TuningStruct
- test_instruction.pyStruct
- Linux核心筆記001 - Intel X86 CPU 系列的定址方式Linux筆記Intel
- 第2節:mysql.gtid_executed表/gtid_executed變數/gtid_purged變數的更改時機MySql變數
- ElasticSearch:Request cannot be executed; I/O reactor status: STOPPEDElasticsearchReact
- First Blog
- 7.93 FIRST
- Instruction和Question的區別和聯絡Struct
- Visual Instruction Tuning論文閱讀筆記Struct筆記
- :first-child與:first-of-type 區別
- 檢查.net dll構建的目標平臺是any cpu、x86、x64
- Mercury Research:2021年Q3 AMD在x86 CPU市場份額已達24.6%
- Intel、AMD CPU中發現新漏洞!黑客可通過“Hertzbleed”攻擊竊取加密金鑰|x86 CPU 節電模式均中招Intel黑客加密模式
- My first blog!
- my first demo
- First steps with Incus
- My First Blog
- Andy's First Dictionary
- 【EF Core】Code first
- 7.94 FIRST_VALUE
- Head First Python (一)Python
- @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty
- Java訪問Elasticsearch報錯Request cannot be executed; I/O reactor status: STOPPEDJavaElasticsearchReact
- CSS E::first-letterCSS
- FIRST_ROWS_n(轉)
- CSS E:first-of-typeCSS
- Leetcode 41 First Missing PositiveLeetCode
- Head First HTML and CSS (八)HTMLCSS
- CSS E:first-childCSS
- ! [rejected] master -> master (fetch first)AST
- Creating your first iOS FrameworkiOSFramework
- Where the top of the stack is on x86
- 自用 x86 GetProcAddress + GetModuleHandle
- css選擇器中:first-child與:first-of-type的區別CSS
- 以太坊原始碼分析(27)core-vm-jumptable-instruction原始碼分析原始碼Struct
- k8s-nginx二進位制報Illegal instruction (core dumped)K8SNginxStruct
- ARM和X86架構架構
- Linux之x86架構Linux架構