/kernel/trunk/kernel.asm |
---|
3948,25 → 3948,33 |
gidril1: |
shl ebx,12 |
mov ecx,1 |
lea eax,[ebx + IRQ_SAVE + 0x10] |
mov edx,[eax - 0x10] |
xor ecx, ecx |
inc ecx |
lea eax,[ebx + IRQ_SAVE] |
mov edx,[eax] |
test edx,edx |
jz gid1 |
dec dword [eax - 0x10] |
dec edx |
mov [eax], edx |
movzx ebx,byte [eax] |
mov ecx, [eax + 0x4] |
mov edi, eax |
xchg esi, eax |
inc esi |
cmp ecx, 4000 |
jb @f |
mov ecx,4000 / 4 |
cld |
rep movsd |
; xor ecx,ecx ; as result of 'rep' ecx=0 |
dec edx |
xor ecx, ecx |
@@: |
inc ecx |
mov [eax + 0x4], ecx |
dec ecx |
add eax, ecx |
movzx ebx,byte [eax + 0x10] |
xor ecx, ecx |
gid1: |
mov [esp+32],edx |
mov [esp+28],ecx |