razzle/arch/i386/irq.s

144 lines
1.9 KiB
ArmAsm
Raw Permalink Normal View History

2024-10-03 07:55:54 +00:00
.global irq0
.global irq1
.global irq2
.global irq3
.global irq4
.global irq5
.global irq6
.global irq7
.global irq8
.global irq9
.global irq10
.global irq11
.global irq12
.global irq13
.global irq14
.global irq15
.global irq128
irq0:
cli
push $0
push $32
jmp irq_handle
irq1:
cli
push $1
push $33
jmp irq_handle
irq2:
cli
push $2
push $34
jmp irq_handle
irq3:
cli
push $3
push $35
jmp irq_handle
irq4:
cli
push $4
push $36
jmp irq_handle
irq5:
cli
push $5
push $37
jmp irq_handle
irq6:
cli
push $6
push $38
jmp irq_handle
irq7:
cli
push $7
push $39
jmp irq_handle
irq8:
cli
push $8
push $40
jmp irq_handle
irq9:
cli
push $9
push $41
jmp irq_handle
irq10:
cli
push $10
push $42
jmp irq_handle
irq11:
cli
push $11
push $43
jmp irq_handle
irq12:
cli
push $12
push $44
jmp irq_handle
irq13:
cli
push $13
push $45
jmp irq_handle
irq14:
cli
push $14
push $46
jmp irq_handle
irq15:
cli
push $15
push $47
jmp irq_handle
irq128:
cli
push $0x80
push $0x80
jmp irq_handle
irq_handle:
pusha
push %ds
push %es
push %fs
push %gs
mov $0x10, %ax
mov %ax, %ds
mov %ax, %es
mov %ax, %fs
mov %ax, %gs
movl %esp, %eax
push %eax
movl $irq_handler, %eax
call *%eax
pop %eax
pop %gs
pop %fs
pop %es
pop %ds
popal
addl $8, %esp
iret