From 0ec631a645554fadb7531bdff43eb5a52ec49e6d Mon Sep 17 00:00:00 2001 From: yanguangshaonian Date: Tue, 11 Apr 2023 22:25:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=96=E4=B8=AD=E6=96=AD=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/kernel/handle.asm | 1 + 1 file changed, 1 insertion(+) diff --git a/src/kernel/handle.asm b/src/kernel/handle.asm index b6942be..839e107 100644 --- a/src/kernel/handle.asm +++ b/src/kernel/handle.asm @@ -23,6 +23,7 @@ section .text ; ## eflag ; sti打开中断这个指令会把 if位 置为1, ; 如果使用sti指令 后压入栈的 eflags就是 0x212, 如果关闭中断则压入栈的eflags就变成了0x012, 0x212或者0x012 这俩数, 他们的bit位的第九位存在差别 ; 此时压入栈的是0x212, 而eflag寄存器则是0x12, 因为我们初始化中断描述符的时候, 设置的是中断门 所以第九位被置为了0保存在了eflag寄存器中 +; 所以, 在中断的时候 eflag中的 if位又被设置成了0(关闭中断状态), 如果我们想在中断处理函数内调度用户任务, 需要打开中断, 让用户任务执行的时候可以触发中断 ; 时钟中断时 0x20 这个也没有错误码 %macro INTERRUPT_HANDLER 2