Interrupt 17



  • Hallo,

    ich benötige Infos, was der Interrupt 17 eigentlich genau macht. Am besten in Verbindung mit dem Schnittstellenbaustein. Hat jemand eine Internetseite, oder ein Buch, aus dem er es mir rauskopieren könnte (ein Kauf lohnt sich da net, weil ich es schon bis morgen brauch 😞 )?

    Danke schon mal im vorraus.





  • Danke, ... das hatte ich auch schon gefunden. Leider ist es nicht das, was ich suchte. Ich wollte eher wissen, was macht der Int17 mit den werten, die in ax und dx drin stehen. wo gehen die hin usw.

    Trotzdem vielen Dank für die Mühe.



  • Wo sollten die Werte schon grossartig hingehen? 😕
    Beim Aufruf von int 17h bleiben die Werte zunaechst einfach in den Registern stehen, bis sie dann vom Code des Interrupt-handlers abgerufen/veraendert werden.
    Was die Werte in den Registern bewirken, und inwiefern sie veraendert werden, steht in oben verlinkter Liste.
    Ansonsten kannst du je nach OS auch selbst einen Handler am int 17h installieren - dann kannst du ganz genau nachvollziehen, was da ablaeuft. 😉



  • Hm, danke, aber das ist zu einfach. Für das Referat, was ich halten muss ist das nix. Mir fehlt die Verbindung vom Int17 zum Peripheriebaustein selbst. Welche Werte kommen wie und wohin zu dem Baustein. Vielleicht war es etwas zu einfach ausgedrückt gewesen. Das schlimme ist, bis auf mov und int kenne ich fast nix, was mit assembler zu tun hat, sonst tät ich mir das selbst anschauen, was da passiert.

    Den Baustein selbst habe ich, wie er funktioniert, aber was nach dem "int 17" aufruf alles passiert, weiss ich net. Vor allem, was der da so lange macht. nach dem int 17 braucht er bestimmt 3 sek, bis er den nächsten befehl anspringt.

    Tja, ich brauche es für ein Referat, und da wäre der Übergang vom assemblerprogramm zum peripheriebaustein doch angenehmer. so muss ich sagen, ich weiss nicht, was dazwischen passiert. ist halt wieder eine abwertung.

    Aber trotzdem danke.



  • Bitte was für ein Peripheriebaustein? Hast du überhaupt eine Ahnung, wovon du sprichst?



  • Ja, so ziemlich, nur hast du mich jetzt verwirrt. Zwischen den Registern der CPU und dem Anschluss an der Rechnerrückseite hockt doch noch ein IC, der die Aufgabe übernimmt, die Daten entsprechend auf der Schnittstelle bereit zu stellen. Sozusagen das Bindeglied zwischen System und Anschluss. Es war bei den älteren Rechnern so, und ich kann mir net vorstellen, das es heut anders sein soll. Zum Beispiel war der SAB8255 so ein Chip (allerdings 1977), der Daten auf der paralellen Schnittstelle bereitstellte.
    Die CPU hat ja sicherlich keine Pins, die nach aussen gelegt sind. Auch wenn es früher 1 Chip war, der für jede Schnittstelle nötig war, und heut vielleicht nur einer, der alle (parallel, seriell und usb) anspricht, muss doch das System ähnlich sein. Und mich interessiert, wie da welche Daten fliessen. Wie meine Daten, die ich in die Register schreibe aussen ankommen.

    Ich hoffe, jetzt aufgeklärt zu haben, was ich meine. Und nix für ungut. Ich habe halt gehofft, das jemand einen nützlichen Link hätte, oder ne Buchempfehlung, da ihr bei assembler doch noch näher an der Hardware seid, als die anderen Programmiersprachen, hier in dem Forum.



  • Also, wenn ich das jetzt richtig deute, willst du wissen, wie die Printer-Funktionen des int 17h so in etwa funktionieren?



  • ja, schon. habe ich mich echt so missverständlich ausgedrückt? sorry.

    also, wie gesagt, was passiert zwischen dem int 17 aufruf und den ausgangssignalen am parallelport (also noch im computer). Wäre schön.



  • Nachdem erstmal durch bestimmte Registerwerte ein Funktionscode ausgewaehlt wurde (siehe dazu die verlinkte Seite), werden per In/Out (siehe dazu auch den LTP-Thread in den Assembler-FAQ) entweder direkt die Pins am LTP angesteuert (dh. es geht von der CPU ueber den BUS an einen Chip, der dann direkt mit dem LTP verbunden ist), oder es wird ein DMA gestartet (automatische Uebertragung mehrerer Zeichen).
    Ich bin mir nun allerdings nicht sicher, wie so ein Drucker nun genau angesteuert wird.



  • Wenn du gleich gesagt hättest, dass es dir um den Parallelport geht, wäre die Sache um einiges leichter gewesen.

    Wie das genau funktioniert, wird wahrscheinlich in irgendwelchen Chipsetdokus von Intel stehen. Oder du schaust im parport Treiber im Linux Kernel nach. Hat zwar nix mit int 17h zu tun, aber das ist ja auch nur eine Sammlung von Funktionen, die halt dann die entsprechenden out/in Befehle absetzen.



  • oh, ich dachte, der int 17 arbeitet nur mit der parallelen schnittstelle. da hatte ich vorrausgesetzt, das jeder was mit dem int 17 -> parallele Schnittstelle anfangen kann. sorry.

    Im Treiber nachschauen ist net so ganz mein fall, da ich mich lediglich etwas mit c++ auskenne, und das nun auch net die welt.

    In der FAQ konnte ich zu LTP nix finden, da mir die Möglichkeit nicht angezeigt wird, auf die weiteren Seiten zu blättern. Der IE zeigt mir nur die ersten 14 Themen an, und da ist nix zu finden. Ich schau mal später nochmal, da ich momentan zu müde noch bin, vielleicht übersehe ich was.

    Mein Referat hatte ich nun gestern gehalten. Ohne den Int 17 -> ist trotzdem ein einser geworden 😃 . Hier mal der Link: http://www.itt-board.de/forum/index.php?showtopic=88
    Wäre evtl auch was für die FAQ -> Assembler, und alle Hochsprachen (inpout32.dll).
    Ich denke es ist was für denjenigen, der mal anfangen will, mit der parallelen Schnittstelle zu experimentieren. Mein nächstes Projekt wird eine Relaiskarte mit bis zu 64 Relais für die parallele Schnittstelle 🙂 ... Vielleicht will ja jemand sein Haus damit steuern 😉

    Ihr braucht euch nimma anstrengen. Aber wenn jemand trotzdem was nützliches hat über mein Problem, wäre ich trotzdem dankbar, da mich das immernoch interessiert.

    Also, mal vielen Dank für die Hilfe.



  • Nu habe ich auch wieder meine tolle Linksammlung:
    C/C++ Forum :: FAQ - Assembler :: parallele Schnittstelle
    Ist doch schonmal sehr schoen. 😉
    Dein Referat werde ich mir mal anschauen.


Anmelden zum Antworten