diff options
Diffstat (limited to 'asm/int_clock_handler.asm')
| -rw-r--r-- | asm/int_clock_handler.asm | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/asm/int_clock_handler.asm b/asm/int_clock_handler.asm index 03685fd..c6c91fc 100644 --- a/asm/int_clock_handler.asm +++ b/asm/int_clock_handler.asm @@ -19,13 +19,12 @@ int_clock_handler: ; mov byte [CLOCK_COUNTER], 0x00 - pusha ;Push all standard registers - +pusha ;Push all standard registers push esp ;Push pointer to all the stuff we just pushed call task_switch_next ;Call C code - pop ebx + ;pop ebx ;compare: ;cmp eax,ebx @@ -34,12 +33,12 @@ int_clock_handler: mov esp, eax ;Replace the stack with what the C code gave us - popa ;Put the standard registers back ; skip_clock: - mov al, 0x20 ;Port number AND command number to Acknowledge IRQ - out 0x20, al ;Acknowledge IRQ, so we keep getting interrupts + out 0x20, al ;Acknowledge IRQ, so we keep getting interrupts + + popa ;Put the standard registers back ;We didn't push an error code or IRQ number, so we don't have to edit esp now sti |
