diff options
| author | EmulatedSeasons <89668582+EmulatedSeasons@users.noreply.github.com> | 2024-05-03 03:39:47 -0400 |
|---|---|---|
| committer | EmulatedSeasons <89668582+EmulatedSeasons@users.noreply.github.com> | 2024-05-03 03:39:47 -0400 |
| commit | 2d59766eb330b9d15a9bcbcd7e1695809fc099c5 (patch) | |
| tree | b5abb4d0c0c488cbb44c2c0a54d59b44fe1fc462 /kernel/arch/x86/isr.asm | |
| parent | 2461cd921d45e3d75245568bc59831c1f0a43331 (diff) | |
renamed i386 to x86
Diffstat (limited to 'kernel/arch/x86/isr.asm')
| -rw-r--r-- | kernel/arch/x86/isr.asm | 324 |
1 files changed, 324 insertions, 0 deletions
diff --git a/kernel/arch/x86/isr.asm b/kernel/arch/x86/isr.asm new file mode 100644 index 0000000..4ccbaf9 --- /dev/null +++ b/kernel/arch/x86/isr.asm @@ -0,0 +1,324 @@ +; isr.asm
+; ISR functions are defined here. Most code is done in isr_handlers.cpp
+
+global isr0
+global isr1
+global isr2
+global isr3
+global isr4
+global isr5
+global isr6
+global isr7
+global isr8
+global isr9
+global isr10
+global isr11
+global isr12
+global isr13
+global isr14
+global isr15
+global isr16
+global isr17
+global isr18
+global isr19
+global isr20
+global isr21
+global isr22
+global isr23
+global isr24
+global isr25
+global isr26
+global isr27
+global isr28
+global isr29
+global isr30
+global isr31
+global isr32
+global isr33
+global isr34
+global isr35
+global isr36
+global isr37
+global isr38
+global isr39
+global isr40
+global isr41
+global isr42
+global isr43
+global isr44
+global isr45
+global isr46
+global isr47
+
+section .text
+align 4
+
+isr0:
+ pushad
+ mov ebx, 0
+ call exception_stub
+ hlt
+ popad
+ iret
+
+isr1:
+ pushad
+ popad
+ iret
+
+isr2:
+ pushad
+ popad
+ iret
+
+isr3:
+ pushad
+ popad
+ iret
+
+isr4:
+ pushad
+ popad
+ iret
+
+isr5:
+ pushad
+ popad
+ iret
+
+isr6:
+ pushad
+ mov ebx, 6
+ call exception_stub
+ popad
+ iret
+
+isr7:
+ pushad
+ popad
+ iret
+
+isr8:
+ pushad
+ mov ebx, 8
+ call exception_stub
+ popad
+ iret
+
+isr9:
+ pushad
+ popad
+ iret
+
+isr10:
+ pushad
+ popad
+ iret
+
+isr11:
+ pushad
+ mov ebx, 11
+ call exception_stub
+ popad
+ iret
+
+isr12:
+ pushad
+ popad
+ iret
+
+isr13:
+ pushad
+ mov ebx, 13
+ call exception_stub
+ popad
+ iret
+
+isr14:
+ pushad
+ mov ebx, 14
+ call exception_stub
+ popad
+ iret
+
+isr15:
+ pushad
+ popad
+ iret
+
+isr16:
+ pushad
+ popad
+ iret
+
+isr17:
+ pushad
+ popad
+ iret
+
+isr18:
+ pushad
+ popad
+ iret
+
+isr19:
+ pushad
+ popad
+ iret
+
+isr20:
+ pushad
+ popad
+ iret
+
+isr21:
+ pushad
+ popad
+ iret
+
+isr22:
+ pushad
+ popad
+ iret
+
+isr23:
+ pushad
+ popad
+ iret
+
+isr24:
+ pushad
+ popad
+ iret
+
+isr25:
+ pushad
+ popad
+ iret
+
+isr26:
+ pushad
+ popad
+ iret
+
+isr27:
+ pushad
+ popad
+ iret
+isr28:
+ pushad
+ popad
+ iret
+
+isr29:
+ pushad
+ popad
+ iret
+
+isr30:
+ pushad
+ popad
+ iret
+
+isr31:
+ pushad
+ popad
+ iret
+
+isr32:
+ pushad
+ ;extern pit_handler
+ ;call pit_handler
+ popad
+ iret
+
+isr33:
+ pushad
+ extern ps2_handler
+ call ps2_handler
+ popad
+ iret
+
+isr34:
+ pushad
+ popad
+ iret
+
+isr35:
+ pushad
+ popad
+ iret
+
+isr36:
+ pushad
+ popad
+ iret
+isr37:
+ pushad
+ popad
+ iret
+
+isr38:
+ pushad
+ popad
+ iret
+
+isr39:
+ pushad
+ popad
+ iret
+
+isr40:
+ pushad
+ xchg bx, bx
+ popad
+ iret
+
+isr41:
+ pushad
+ popad
+ iret
+
+isr42:
+ pushad
+ popad
+ iret
+
+isr43:
+ pushad
+ popad
+ iret
+
+isr44:
+ pushad
+ popad
+ iret
+
+isr45:
+ pushad
+ popad
+ iret
+
+isr46:
+ pushad
+ popad
+ iret
+
+isr47:
+ pushad
+ popad
+ iret
+
+exception_stub:
+ push ebp
+ mov ebp, esp
+
+ push ebx
+ ;cld
+ extern exception_handler
+ call exception_handler
+ pop ebx
+
+ mov esp, ebp
+ pop ebp
+ ret
\ No newline at end of file |
