Oragner's 操作系统中时钟中断, 为了防止嵌入中断这里添加了 k__reenter 这个变量初始化为 -1,
我觉得应该把 dec [k_reenter] 改为 mov [k_reenter], -1 应该合理啊??
sub esp, 4
pushad
push ds
push es
push fs
push gs
mov dx, ss
mov ds, dx
mov es, dx
inc byte [gs:0]
mov al, EOI
out INT_M_CTL, al
inc dword [k_reenter]
cmp dword [k_reenter], 0
jne .re_enter
mov esp, [kernel_top]
sti
push '^'
call put_char
add esp, 4
push 1
call delay
add esp, 4
cli
;
mov esp, [current]
lea eax, [esp + P_STACKTOP]
mov dword [tss + TSS3_S_SP0], eax
.re_enter:
dec dword [k_reenter]
pop gs
pop fs
pop es
pop ds
popad
add esp, 4
iretd