Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Gateway
Anmeldungsdatum: 02.08.2006 Beiträge: 7
|
Verfasst am: 02. Sep 2006 16:52 Titel: Hardware Interupt |
|
|
Ein Software-interupt ist ja was ganz einfaches... ein Programm führt den Code aus das an Stelle des Interupts steht. Was Passiert jedoch bei einem Hardware interupt?
Wird wen von der Hardware ein solcher interupt ausgelöst wird auch ein code ausgeführt?
Und wen ja was passiert dann mit der Aktion die der Cpu zu diesem Zeitpunkt ausführt....? _________________ In der Mitte der Schwierigkeiten liegen die Möglichkeiten...[Alber Einstein] |
|
Nach oben |
|
|
|
Crotaphytus
Anmeldungsdatum: 08.05.2005 Beiträge: 213
|
Verfasst am: 02. Sep 2006 19:00 Titel: |
|
|
Ja, auch bei einem Hardwareinterrupt wird Code ausgeführt. Dazu hat jeder Interrupt eine bestimmte Nummer, wobei der Rechner dann in einer Tabelle nachschaut, was bei diesem bestimmten Interrupt zu tun ist.
Vorher wird, je nach Art des Interrupts, der aktuelle Zustand der CPU gesichert und nach Abhandlung des Interrupts wieder zurückgeholt. Je nach Art deshalb, weil das beispielsweise bei nem Reset (das ist auch n Interrupt) relativ sinnlos wäre. _________________ Genie oder Wahnsinn? Wer kann es wissen... |
|
Nach oben |
|
|
Gateway
Anmeldungsdatum: 02.08.2006 Beiträge: 7
|
Verfasst am: 03. Sep 2006 08:57 Titel: |
|
|
In anderen Sprachen gibt es ja timer. Werden diese durch den timer-interupt ausgelöst? Wie kann man in asm einen Timer realisieren? _________________ In der Mitte der Schwierigkeiten liegen die Möglichkeiten...[Alber Einstein] |
|
Nach oben |
|
|
TMSearcher
Anmeldungsdatum: 19.05.2005 Beiträge: 270 Wohnort: Bremen
|
Verfasst am: 03. Sep 2006 20:05 Titel: |
|
|
Hi,
mir fällt eigentlich nur der Hardware-Interrupt 8 ein. Er wird von dem Timer Chip generiert und 18,2 mal pro Sekunde aufgerufen. Der Timer Chip wird mit 1.193.180 Hz getaktet (Chip-Referenz= 8253 Link1, Link2, Link3). Diese Frequenz wird dann durch 65536 geteilt.
Die Port-Adresse des Timers = 0x40 –0x5F
Der Interrupt-Vektor liegt von 0x20-0x23
Falls du mit den Timereinstellungen etwas spielen möchtest ;-)
So, du müsstest jetzt ein TSR (terminate and stay resident) Programm schreiben, das den Interrupt-Vektor auf deine Routine verbiegt und den Interrupt abarbeitet.
In der Regel macht man das so, dass alle Register gesichert werden, dann eben die eigenen
Aufgaben abgearbeitet werden, dann alle Register rückgesichert werden und dann zur alten Interruptverarbeitung zurück gesprungen wird.
Das "Hallo Welt"–Programm hierfür ist eigentlich immer eine Permanentuhr die eingeblendet wird.
Gruß
TMS _________________ Intelligent life is so very rare,
the rarest thing in creation
and the most precious
This is Earth Calling.. |
|
Nach oben |
|
|
|