Sprungtabelle

Sprungtabelle

Eine Sprungtabelle (auch Sprungleiste, engl. Jump Table) ist eine Software-Konstruktion, um eine bestimmte Auswahl von Funktionen (aus einem Betriebssystem oder aus einer Funktionsbibliothek) bequem und kompatibilitätssicher aufrufen zu können. Dazu sind die Aufrufe (oder manchmal auch nur die nackten Funktionsadressen) mit konstanter Länge hintereinander wie in einer Tabelle im Speicher angeordnet. Sie bestehen typischerweise aus einfachen Sprungbefehlen an die Stelle im ROM oder innerhalb der Funktionsbibliothek, wo der eigentliche Programmcode steht. Auf diese Weise werden mehrere Zwecke gleichzeitig erfüllt:

  • Man erreicht dadurch Kompatibilität zwischen aufeinanderfolgenden Softwareversionen: Auch wenn sich der eigentliche Code einer oder mehrerer Funktionen verändert und sich die Adresslage der Funktionseinsprünge dadurch ändert, wird nur die Adresse in den Sprungbefehlen der Sprungtabelle geändert, wogegen die Anwendungssoftware, die diese Sprungtabelle benutzt, eben nicht angepasst werden muss.
  • Man kann diese Funktionen praktisch über eine Nummer (ihren Index innerhalb der Tabelle) ansprechen, was die Programmierung in bestimmten Bereichen vereinfacht.

Manche Mikroprozessoren unterstützen solche Konstrukte auch durch spezielle Befehle, die solche indizierten Sprünge implementieren.

Implementierung

Implementierungsprinzip einer Programmbibliothek in 6502-Assembler-Syntax:

Bibliotheksbasis:
  JMP Funktion1   ; Sprungleiste
  JMP Funktion2   ; Jede dieser Sprunganweisungen
  JMP Funktion3   ; belegt genau 3 Bytes im ROM
  ...
  JMP Funktionn
  ...
Funktion1:        ; Implementierung Funktion 1
  ...
  RTS             ; Rücksprung aus Funktionsroutine
Funktion2:        ; Implementierung Funktion 2
  ...
  RTS             ; Rücksprung aus Funktionsroutine
  ...
Funktionn:        ; Implementierung Funktion n
  ...
  RTS             ; Rücksprung aus Funktionsroutine

Aufruf einer Funktion aus so einer Bibliothek über ihre Nummer:

  JSR Bibliotheksbasis+3*(Funktionsnummer-1)

Bei einem 68k-Prozessor belegt ein Sprungbefehl 6 statt 3 Bytes, entsprechend muss im Aufruf dann mit 6 multipliziert werden.

Auf Hochsprachenebene erledigt die jeweilige Laufzeitbibliothek die Umrechnung eines Funktionsnamens oder einer -nummer in so einen Sprungbefehl.

Hier erkennt man auch den Vorteil der Methode: Wird bei einer Überarbeitung der Funktionsbibliothek beispielsweise die Implementierung der Funktion1 erweitert, so dass sie mehr Raum im ROM belegt, verschieben sich die Einsprungspunkte der höheren Funktionsnummern nach hinten. Die Sprungleiste ganz am Beginn ändert ihre Struktur aber nicht, so dass auch der Aufruf aus dem Anwendungsprogramm nicht geändert werden muss.

Beispiele

Sprungtabelle des CBM-Kernals
  • Das Betriebssystem des Commodore-PET 2001 und seiner Nachfolger bis hin zum C64 hatte am Ende seines ROMs so eine Sprungtabelle für die wichtigsten Betriebssystemaufrufe. Beispielsweise stand in allen genannten Betriebssystemen auf Adresse $FFD2 ein Sprung in die Routine zur Ausgabe eines einzelnen Zeichens (das im Akkumulator zu übergeben war) auf den Bildschirm.
  • Die Shared Libraries (Funktionsbibliotheken) des AmigaOS verfügen alle an ihrem Anfang über so eine Sprungtabelle, über die standardmäßig alle Aufrufe ihrer Funktionen erfolgen.

Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР
Synonyme:

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Sprungtabelle — pereigų lentelė statusas T sritis automatika atitikmenys: angl. jump table; transfer table vok. Sprungtabelle, f rus. таблица переходов, f pranc. table de transition, f …   Automatikos terminų žodynas

  • Sprungtabelle — Verzweigungstabelle …   Universal-Lexikon

  • Verzweigungstabelle — Sprungtabelle …   Universal-Lexikon

  • Kernal — Sprungtabelle des CBM Kernals Kernal ist die Bezeichnung der US Computer Firma Commodore für den Betriebssystemkern (engl. Kernel) ihrer Heimcomputer, ausgehend vom PET 2001 über VC 20 und C64 bis hin zum C128. Der Kernal besteht vor allem aus… …   Deutsch Wikipedia

  • Commodore PET — 2001 Commodore PET 2001 mit offener Haube Der PET 2001 war der erste PC bzw. Heimcomputer der Firma Commodo …   Deutsch Wikipedia

  • Commodore PET 2001 — mit offener Haube Der PET 2001 war der erste PC bzw. Heimcomputer der Firma Commodo …   Deutsch Wikipedia

  • Sprungleiste — Eine Sprungtabelle (auch Sprungleiste, engl. Jump Table) ist eine Software Konstruktion, um eine bestimmte Auswahl von Funktionen (aus einem Betriebssystem oder aus einer Funktionsbibliothek) bequem und kompatibilitätssicher aufrufen zu können.… …   Deutsch Wikipedia

  • Boyer-Moore-Algorithmus — Der Boyer Moore Algorithmus ist ein String Matching Algorithmus. Der Algorithmus wird dazu genutzt, um in einem Text T einen bestimmten Teiltext (Muster M) zu finden und wurde 1977 von Robert S. Boyer und J Strother Moore entwickelt.… …   Deutsch Wikipedia

  • Brotkasten (c64) — Der C64 im „Brotkasten“ Gehäuse Der Commodore 64 (kurz: C64, umgangssprachlich auch 64er) ist ein 8 Bit Heimcomputer mit 64 KByte Arbeitsspeicher. Seit seiner Vorstellung im Januar 1982 auf der Winter Consumer Electronics Show war der von… …   Deutsch Wikipedia

  • C-64 — Der C64 im „Brotkasten“ Gehäuse Der Commodore 64 (kurz: C64, umgangssprachlich auch 64er) ist ein 8 Bit Heimcomputer mit 64 KByte Arbeitsspeicher. Seit seiner Vorstellung im Januar 1982 auf der Winter Consumer Electronics Show war der von… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”