2021-04-27 19:02:17 +02:00
|
|
|
.code64
|
|
|
|
|
2021-04-21 18:54:50 +02:00
|
|
|
.extern printk
|
2021-04-25 12:41:24 +02:00
|
|
|
.extern ack
|
2021-04-21 18:54:50 +02:00
|
|
|
|
|
|
|
.macro call_printk msg
|
|
|
|
mov \msg, %rdi
|
|
|
|
mov $0, %eax # Required for variadic functions
|
|
|
|
call printk
|
|
|
|
.endm
|
|
|
|
|
|
|
|
.globl INT_DEFAULT
|
|
|
|
INT_DEFAULT:
|
|
|
|
iretq
|
|
|
|
|
|
|
|
.globl INT_0
|
|
|
|
INT_0:
|
|
|
|
call_printk $MSG_INT_0
|
|
|
|
INT_0_INFINITE:
|
|
|
|
jmp INT_0_INFINITE
|
|
|
|
iretq
|
|
|
|
|
|
|
|
.globl INT_14
|
|
|
|
INT_14:
|
|
|
|
call_printk $MSG_INT_14
|
|
|
|
mov $0, %eax
|
|
|
|
call printk
|
|
|
|
INT_14_INFINITE:
|
|
|
|
jmp INT_14_INFINITE
|
|
|
|
iretq
|
|
|
|
|
2021-04-25 12:41:24 +02:00
|
|
|
.globl INT_KBD
|
|
|
|
INT_KBD:
|
|
|
|
call_printk $MSG_INT_KBD
|
|
|
|
call ack
|
|
|
|
iretq
|
2021-04-21 18:54:50 +02:00
|
|
|
|
|
|
|
MSG_INT_0:
|
|
|
|
.asciz "Zero Division error!"
|
|
|
|
MSG_INT_14:
|
|
|
|
.asciz "Page fault!"
|
2021-04-25 12:41:24 +02:00
|
|
|
MSG_INT_KBD:
|
|
|
|
.asciz "Key press!"
|
|
|
|
MSG:
|
2021-04-27 19:02:17 +02:00
|
|
|
.asciz "Called :)\n"
|