如题,在第11章的第二个实验时,我的实验现象如图

继续按下c后

与实验结果不符合,经过排查,在github上找的正确的代码对比
发现是interrupt.c中的idt_init()函数中
uint64_t idt_operand = ((sizeof(idt) - 1) | ((uint64_t)(uint32_t)idt << 16));
错写成
uint64_t idt_operand = ((sizeof(idt) - 1) | ((uint64_t) ((uint32_t)idt << 16)));
多加了个括号,自己排错排了半天,坑!!