1
Lowlevel-Coding / Re:Fehler bei IRQ-Behandlung
« am: 07. May 2011, 12:42 »
Also der Code sieht immo so aus:
irq_handler: # Wird von jeder Exception ausgegeben
pusha
push %ds
push %gs
push %es
push %fs
call isr
pop %fs
pop %es
pop %gs
pop %ds # Hier hängts
popa
iret
Und die dazugehörige ISR:
isr:
enter $0, $0
# Einen String zum Test ausgeben (msg = "Hallo Interrupt!")
pushl $msg
call put_str # Gibt den String aus
addl $4, %esp
leave
ret
irq_handler: # Wird von jeder Exception ausgegeben
pusha
push %ds
push %gs
push %es
push %fs
call isr
pop %fs
pop %es
pop %gs
pop %ds # Hier hängts
popa
iret
Und die dazugehörige ISR:
isr:
enter $0, $0
# Einen String zum Test ausgeben (msg = "Hallo Interrupt!")
pushl $msg
call put_str # Gibt den String aus
addl $4, %esp
leave
ret