boucane/src/core/int.S

47 lines
668 B
ArmAsm
Raw Normal View History

2021-04-27 19:02:17 +02:00
.code64
2021-04-21 18:54:50 +02:00
.extern printk
.extern ack
2021-04-21 18:54:50 +02:00
.macro call_printk msg
mov \msg, %rdi
mov $0, %eax # Required for variadic functions
mov $printk,%rcx
call *(%rcx)
2021-04-21 18:54:50 +02:00
.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
.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!"
MSG_INT_KBD:
.asciz "Key press!"
MSG:
2021-04-27 19:02:17 +02:00
.asciz "Called :)\n"