1
Lowlevel-Coding / Re: Verwirrt durch Interrupts
« am: 17. July 2007, 08:56 »
@noooooos:
Also die Hardware interrupts habe ich DEmaskiert, so wie du es mir in einem anderen Post gesagt hast (zu Testzwecken).
Hiermit remappe ich die PICs:
Und mir
Aber egal wie ich es mache, es funktioniert nicht. Kein int funktioniert und qemu friert einfach ein. Ich kann es nicht mal mehr beenden.
Also die Hardware interrupts habe ich DEmaskiert, so wie du es mir in einem anderen Post gesagt hast (zu Testzwecken).
Hiermit remappe ich die PICs:
Code: [Auswählen]
PIC1 equ 0x20
PIC2 equ 0xA0
PIC1_DATA equ PIC1 + 1
PIC2_DATA equ PIC2 + 1
ICW1 equ 0x11
ICW4 equ 0x01
remap_pics: ; eax = offset1 ebx = offset2
push eax
in eax, PIC1_DATA
mov [a1], al
in eax, PIC2_DATA
mov [a2], al
mov eax, ICW1
out PIC1, eax
out PIC1, eax
pop eax
out PIC1_DATA, eax
mov eax, ebx
out PIC2_DATA, eax
mov al, 4
out PIC1_DATA, al
mov al, 2
out PIC2_DATA, al
mov eax, ICW4
out PIC1_DATA, eax
out PIC2_DATA, eax
mov eax, [a1]
out PIC1_DATA, eax
mov eax, [a2]
out PIC2_DATA, eax
ret
a1 db 0
a2 db 0
Und mir
Code: [Auswählen]
mov eax, 0x20
mov ebx, 0x28
call remap_pics
rufe ich die Funktion auf.Aber egal wie ich es mache, es funktioniert nicht. Kein int funktioniert und qemu friert einfach ein. Ich kann es nicht mal mehr beenden.