@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:
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
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.