StupidOS/kernel/idt.s

35 lines
500 B
ArmAsm
Raw Normal View History

2023-01-15 19:25:25 +00:00
[BITS 32]
section .text
global setup_idt
setup_idt:
2023-01-17 10:35:11 +00:00
%assign i 0
extern isr %+ i
mov eax, isr %+ i
mov [idt_entries + i * 4], ax
shr eax, 16
mov word [idt_entries + i * 4 + 2], 0x8
mov byte [idt_entries + i * 4 + 5], 0x8E
mov [idt_entries + i * 4 + 6], ax
%assign i i+1
%rep 32
%endrep
2023-01-15 19:25:25 +00:00
lidt [idt_ptr]
2023-01-17 10:35:11 +00:00
sti
2023-01-15 19:25:25 +00:00
ret
section .data
idt_ptr:
2023-01-17 10:35:11 +00:00
dw 256 * 8
2023-01-15 19:25:25 +00:00
dd idt_entries
idt_entries:
times 256 dd 0x00000000, 0x00000000
2023-01-17 10:35:11 +00:00
;; dw isr_low
;; dw kernel cs
;; db zero
;; db attr
;; dw isr_high
2023-01-15 19:25:25 +00:00
.end: