mirror of
https://github.com/0xAX/linux-insides.git
synced 2025-03-12 20:46:07 +00:00
Добавлено местоположение исходного кода Coreboot
This commit is contained in:
parent
3e1456fc91
commit
1f2c47982d
@ -73,7 +73,7 @@ CS base 0xffff0000
|
||||
'0xfffffff0'
|
||||
```
|
||||
|
||||
Мы получили `0xfffffff0`, т.е. 16 байт ниже 4 Гб. По этому адресу располагается так называемый [вектор прерываний](http://en.wikipedia.org/wiki/Reset_vector). Это область памяти, в которой CPU ожидает найти первую инструкцию для выполнения после сброса. Она содержит инструкцию [jump](http://en.wikipedia.org/wiki/JMP_%28x86_instruction%29) (`jmp`), которая обычно указывает на точку входа в BIOS. Например, если мы взглянем на исходный код [coreboot](http://www.coreboot.org/), то увидим следующее:
|
||||
Мы получили `0xfffffff0`, т.е. 16 байт ниже 4 Гб. По этому адресу располагается так называемый [вектор прерываний](http://en.wikipedia.org/wiki/Reset_vector). Это область памяти, в которой CPU ожидает найти первую инструкцию для выполнения после сброса. Она содержит инструкцию [jump](http://en.wikipedia.org/wiki/JMP_%28x86_instruction%29) (`jmp`), которая обычно указывает на точку входа в BIOS. Например, если мы взглянем на исходный код [coreboot](http://www.coreboot.org/) (`src/cpu/x86/16bit/reset16.inc`), то увидим следующее:
|
||||
|
||||
```assembly
|
||||
.section ".reset"
|
||||
@ -87,7 +87,7 @@ reset_vector:
|
||||
|
||||
Здесь мы можем видеть [опкод инструкции jmp](http://ref.x86asm.net/coder32.html#xE9) - `0xe9`, и его адрес назначения `_start - ( . + 2)`.
|
||||
|
||||
Мы также можем видеть, что секция `reset` занимает `16` байт и начинается с `0xfffffff0`:
|
||||
Мы также можем видеть, что секция `reset` занимает `16` байт и начинается с `0xfffffff0` (`src/cpu/x86/16bit/reset16.lds`):
|
||||
|
||||
```
|
||||
SECTIONS {
|
||||
|
Loading…
Reference in New Issue
Block a user