X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/de334342a8a134a7c5b15e175d1c2ff87e6dbb2a..fa57b4a05aa12d594f40e0894e0ac6f810a7095c:/lunaix-os/arch/x86/boot.S diff --git a/lunaix-os/arch/x86/boot.S b/lunaix-os/arch/x86/boot.S index 9c86bbc..938db87 100644 --- a/lunaix-os/arch/x86/boot.S +++ b/lunaix-os/arch/x86/boot.S @@ -77,11 +77,17 @@ andl $0xfffff000, %eax # 有点多余,但写上还算明白一点 movl %eax, %cr3 - /* 开启分页与地址转换 (CR0.PG=1, PG.WP=1) */ movl %cr0, %eax - orl $0x80010000, %eax + orl $0x80010000, %eax /* 开启分页与地址转换 (CR0.PG=1, CR0.WP=1) */ + andl $0xfffffffb, %eax + orl $0x2, %eax /* 启用x87 FPU (CR0.MP=1, CR0.EM=0) */ movl %eax, %cr0 + movl %cr4, %eax + orl $0x600, %eax + movl %eax, %cr4 /* CR4.OSFXSR=1, CR4.OSXMMEXCPT=1 */ + /* x87 FPU 已配置 */ + addl $16, %esp /* 进入高半核! */