🐛 解决了ap处理器无法处理异常的bug(原因是设置错了TSS表)

This commit is contained in:
fslongjin
2022-04-06 18:36:56 +08:00
parent b7df2805ed
commit cc39911d4d
8 changed files with 56 additions and 96 deletions

View File

@ -342,8 +342,10 @@ ENTRY(_start64)
// === GDTR ====
lgdt GDT_POINTER(%rip) //rip, PICposition independent code
//lgdt $GDT_POINTER
// === IDTR ====
lidt IDT_POINTER(%rip)
//lidt $IDT_POINTER
mov $0x10, %ax
mov %ax, %ds
mov %ax, %es
@ -602,6 +604,7 @@ GDT_Table:
.fill 100, 8, 0 // 10-11 TSS(9) 80 TSS128bit
GDT_END:
.global GDT_POINTER
GDT_POINTER:
GDT_LIMIT: .word GDT_END - GDT_Table - 1 // GDT
GDT_BASE: .quad GDT_Table
@ -613,6 +616,7 @@ IDT_Table:
.fill 512, 8, 0 // 512*8IDT
IDT_END:
.global IDT_POINTER
IDT_POINTER:
IDT_LIMIT: .word IDT_END - IDT_Table - 1
IDT_BASE: .quad IDT_Table