From 2d59766eb330b9d15a9bcbcd7e1695809fc099c5 Mon Sep 17 00:00:00 2001 From: EmulatedSeasons <89668582+EmulatedSeasons@users.noreply.github.com> Date: Fri, 3 May 2024 03:39:47 -0400 Subject: renamed i386 to x86 --- kernel/arch/x86/isr.asm | 324 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 324 insertions(+) create mode 100644 kernel/arch/x86/isr.asm (limited to 'kernel/arch/x86/isr.asm') 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 -- cgit v1.2.3-70-g09d2