From 511b4e22d56fdf28d268d4dc7ee82e3d74dd001b Mon Sep 17 00:00:00 2001 From: proninyaroslav Date: Sat, 23 Dec 2017 21:26:04 +0300 Subject: [PATCH] In the following expression, we add the value of phys_base to the rax register, not the address of phys_base. addq phys_base(%rip), %rax BTW, the value of phys_base = the actual loaded physical address of kernel after relocation - the likned physical address of kernel. Signed-off-by: Firo Yang --- Initialization/linux-initialization-1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Initialization/linux-initialization-1.md b/Initialization/linux-initialization-1.md index 2a875e8..e5a582b 100644 --- a/Initialization/linux-initialization-1.md +++ b/Initialization/linux-initialization-1.md @@ -269,7 +269,7 @@ extern pmd_t early_dynamic_pgts[EARLY_DYNAMIC_PAGE_TABLES][PTRS_PER_PMD]; Последнее приготовление перед переходом на точку входа в ядро -------------------------------------------------------------------------------- -После перехода на метку `1` мы включаем `PAE`, `PGE` (Paging Global Extension) и помещаем физический адрес `phys_base` (см. выше) в регистр `rax` и заполняем регистр `cr3`: +После перехода на метку `1` мы включаем `PAE`, `PGE` (Paging Global Extension) и помещаем содержимое `phys_base` (см. выше) в регистр `rax` и заполняем регистр `cr3`: ```assembly 1: