Files
rasp/tests/test_interrupts.asm

53 lines
764 B
NASM
Raw Normal View History

.section code $0x0 {
main:
; Test divide by zero interrupts
; div
mov %status, $1
mov %r0, $1
div %r0, $0
cmpeq (count), $1
jz end
; idiv
mov %status, $2
idiv %r0, $0
cmpeq (count), $2
jz end
mov %status, $0
end:
halt
.align u64
divide_by_zero:
add (count), $1
iret
.export main
.export divide_by_zero
}
.section ivt $0x1000 {
ivt:
.interrupt $1, divide_by_zero
.export ivt
}
.section shared $0x2000 {
count: .u64 $0
.export count
}
.section stack $0x4000 .. $0x5000 {
stack_base:
.export stack_base
}
.meta {
ip: main
flags: $0b100
sp: stack_base
ivt: ivt
}