Pridana verze v0.1
This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
; /*
|
||||
; * AsterOS Kernel
|
||||
; * Autor: Pavel Kalaš
|
||||
; * Rok: 2026
|
||||
; *
|
||||
; * Vytvořeno jen tak z nudy a z chuti zkoušet nové věci.
|
||||
; */
|
||||
|
||||
[bits 64]
|
||||
section .text
|
||||
|
||||
extern interrupt_dispatch
|
||||
|
||||
global isr_stub_table
|
||||
|
||||
%macro ISR_NOERR 1
|
||||
global isr_%1
|
||||
isr_%1:
|
||||
push qword 0
|
||||
push qword %1
|
||||
jmp isr_common
|
||||
%endmacro
|
||||
|
||||
%macro ISR_ERR 1
|
||||
global isr_%1
|
||||
isr_%1:
|
||||
push qword %1
|
||||
jmp isr_common
|
||||
%endmacro
|
||||
|
||||
ISR_NOERR 0
|
||||
ISR_NOERR 1
|
||||
ISR_NOERR 2
|
||||
ISR_NOERR 3
|
||||
ISR_NOERR 4
|
||||
ISR_NOERR 5
|
||||
ISR_NOERR 6
|
||||
ISR_NOERR 7
|
||||
ISR_ERR 8
|
||||
ISR_NOERR 9
|
||||
ISR_ERR 10
|
||||
ISR_ERR 11
|
||||
ISR_ERR 12
|
||||
ISR_ERR 13
|
||||
ISR_ERR 14
|
||||
ISR_NOERR 15
|
||||
ISR_NOERR 16
|
||||
ISR_ERR 17
|
||||
ISR_NOERR 18
|
||||
ISR_NOERR 19
|
||||
ISR_NOERR 20
|
||||
ISR_ERR 21
|
||||
ISR_NOERR 22
|
||||
ISR_NOERR 23
|
||||
ISR_NOERR 24
|
||||
ISR_NOERR 25
|
||||
ISR_NOERR 26
|
||||
ISR_NOERR 27
|
||||
ISR_NOERR 28
|
||||
ISR_NOERR 29
|
||||
ISR_ERR 30
|
||||
ISR_NOERR 31
|
||||
ISR_NOERR 32
|
||||
ISR_NOERR 33
|
||||
ISR_NOERR 128
|
||||
|
||||
isr_common:
|
||||
cld
|
||||
push rax
|
||||
push rbx
|
||||
push rcx
|
||||
push rdx
|
||||
push rbp
|
||||
push rdi
|
||||
push rsi
|
||||
push r8
|
||||
push r9
|
||||
push r10
|
||||
push r11
|
||||
push r12
|
||||
push r13
|
||||
push r14
|
||||
push r15
|
||||
|
||||
mov rdi, rsp
|
||||
call interrupt_dispatch
|
||||
|
||||
pop r15
|
||||
pop r14
|
||||
pop r13
|
||||
pop r12
|
||||
pop r11
|
||||
pop r10
|
||||
pop r9
|
||||
pop r8
|
||||
pop rsi
|
||||
pop rdi
|
||||
pop rbp
|
||||
pop rdx
|
||||
pop rcx
|
||||
pop rbx
|
||||
pop rax
|
||||
|
||||
add rsp, 16
|
||||
iretq
|
||||
|
||||
section .rodata
|
||||
isr_stub_table:
|
||||
dq isr_0
|
||||
dq isr_1
|
||||
dq isr_2
|
||||
dq isr_3
|
||||
dq isr_4
|
||||
dq isr_5
|
||||
dq isr_6
|
||||
dq isr_7
|
||||
dq isr_8
|
||||
dq isr_9
|
||||
dq isr_10
|
||||
dq isr_11
|
||||
dq isr_12
|
||||
dq isr_13
|
||||
dq isr_14
|
||||
dq isr_15
|
||||
dq isr_16
|
||||
dq isr_17
|
||||
dq isr_18
|
||||
dq isr_19
|
||||
dq isr_20
|
||||
dq isr_21
|
||||
dq isr_22
|
||||
dq isr_23
|
||||
dq isr_24
|
||||
dq isr_25
|
||||
dq isr_26
|
||||
dq isr_27
|
||||
dq isr_28
|
||||
dq isr_29
|
||||
dq isr_30
|
||||
dq isr_31
|
||||
dq isr_32
|
||||
dq isr_33
|
||||
dq isr_128
|
||||
Reference in New Issue
Block a user