PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Assembler Frage



Gosh
17.01.2006, 13:37
Hallo
Ich habe einige Fragen bezüglich Interrupts. Wie werden diese gesperrt / freigegeben? Ist das bei diesen gleich 8051 8052 und 80C52.
Ausserdem habe ich augetragen bekommen herrauszufinden was ein Interrup-Vektor ist. Also genauer wie wird er genutzt und wo befinden sich die Vektoren.
Und zu guter letzt bin ich schon lange auf der suche nach der Antwort auf der frage, was ein Interrupt-Handler ist.

Ich danke jetzt schonmal für eure hilfe.:)

Crash-Override
17.01.2006, 19:36
Os-Dev?

Interrups gehen immer mit "cli" fürs sperren und "sti" fürs entsperren.
Interrupt-Vectoren sind Adressen welche auf Codesegmente zeigen zu welchen gesprungen wird wenn sie aufgerufen werden. Man kann sie sowohl im Realmode als auch im Protectedmode ansteuern.

Im Realmode geht das am Besten mit:


push dx
push es
xor ax, ax
mov es, ax
cli
mov word [es:0x%nummer%*4], %adresse%
mov [es:0x%nummer%*4+2], cs
sti
pop es
pop dx


Lad dir mal http://www.jegerlehner.ch/intel/ runter, da steht das Meiste drin.

edit: Die Vectoren stehen im IDT, das ist wie z.B. die Partitionstabelle, nur eben das die Adressen drin stehen.

Gosh
18.01.2006, 12:47
Interrups gehen immer mit "cli" fürs sperren und "sti" fürs entsperren.

Leider musste ich heute bei meinem Referat erfahren, dass dies nicht der fall ist :(
Naja trotzdem danke für deine Hilfe...

Crash-Override
18.01.2006, 14:14
Leider musste ich heute bei meinem Referat erfahren, dass dies nicht der fall ist :(
Naja trotzdem danke für deine Hilfe...

Natürlich, was sollte es denn sonst sein?!