Skip to main content

1988 | Buch

Assembler IV

Supplement zum Lernprogramm

verfasst von: Dipl.-Ing. Hasso Kramer

Verlag: Springer Berlin Heidelberg

Buchreihe : Heidelberger Taschenbücher

insite
SUCHEN

Inhaltsverzeichnis

Frontmatter
1. Runden und Erweitern von Rechenergebnissen
Zusammenfassung
Ein Weg, Produkte zu runden, ist bereits im Teil II des Lernprogramms gezeigt worden. Da in der Dezimalarithmetik mit „gedachtem“ Komma gerechnet wird, mußten die Kommata vor der Verarbeitung der Zahlen in den Rechenfeldern eliminiert werden. Nach dem Runden wurden die „nicht mehr benötigten“ Rechenstellen vor der Verarbeitung mit Nullen aufgefüllt. Durch die Anwendung des Befehls SRP (Shift and Round Packed) wird dieser recht umständliche und nicht allgemein gangbare Lösungsweg sehr vereinfacht.
Hasso Kramer
2. Druckaufbereitung
Zusammenfassung
Das Aufbereiten von Rechenergebnissen in eine druckgerechte Form wird mit dem Befehl ED durchgeführt. Bei der Gestaltung des Druckbildes kann aber die Forderung so aussehen, daß beispielsweise das Währungssymbol $ (Dollar) unmittelbar vor der ersten Ziffer einer Zahl stehen soll: $123.45 oder $0.36. Die Adresse des Währungssymbols (im Ausgabebereich) hängt also von der Stellenzahl der Dezimalzahl ab. Die Adresse könnte man ermitteln, indem man Byte für Byte für das Füllzeichen prüft und bei Ungleichheit die Adresse der ersten Dezimalziffer findet.
Hasso Kramer
3. Ein- und Ausgabe von Daten
Zusammenfassung
Die Ein- oder Ausgabe von Daten (Hauptspeicher) kann in einfacher Weise mit den Makroaufrufen RDATA bzw. WROUT und WRLST (vgl. Teile II + III) durchgeführt werden. Diese Makroaufrufe wenden sich an das Executive (Ablaufteilsoftware) des Betriebssystems.
Hasso Kramer
4. Unterprogrammtechnik
Zusammenfassung
Eine Befehlsfolge, die in einem Programm ein einziges Mal vorhanden ist, jedoch mehrfach durchlaufen und von unterschiedlichen Programmpunkten angesprungen wird, nennt man Unterprogrammroutine oder Subroutine. Routinen dieser Art sind ein Hilfsmittel zur Rationalisierung der Programmierarbeit. Dies wurde bereits am Beispiel einer mehrfach zu durchlaufenden Löschroutine für einen Ausgabebereich gezeigt. Dabei handelt es sich um eine einstufige Verzweigung, d.h. es wird vom Hauptprogramm zur Subroutine und von dort wieder zurück ins Hauptprogramm verzweigt. Bei mehrstufigen Verzweigungen, also Verzweigungen über mehrere Subroutinenstufen, müssen entsprechend viele Rücksprungadressen sichergestellt werden. Damit dem Programmierer alle MZR verfügbar bleiben, empfiehlt es sich, die Rücksprungadressen gegebenenfalls im Hauptspeicher sicherzustellen und vor dem Rücksprung in ein vorgeordnetes Programm wieder zu laden.
Hasso Kramer
5. Verschiebebefehle
Zusammenfassung
Mit Verschiebebefehlen können Bitfolgen in einem Register oder Registerpaar (Doppelregister) um eine Anzahl Stellen nach links oder rechts verschoben werden. Beim arithmetischen Verschieben wird das für die Bitfolge gültige Vorzeichen beibehalten, die Vorzeichenstelle (Bitposition 0) wird nicht mitverschoben. Beim logischen Verschieben wird kein Vorzeichenbit interpretiert. Das arithmetische Verschieben (Shift) von Registerinhalten, die Festpunktzahlen darstellen, ersetzt manchmal die Anwendung von Multiplikations- oder Divisionsbefehlen.
Hasso Kramer
6. Tabellenverarbeitung
Zusammenfassung
Bei der Tabellenverarbeitung tritt neben der Indizierung der Sendefeld-adressen das Abarbeiten der Tabellenwerte in einer Programmschleife auf (vgl. Teil III.). Mit wenig Codieraufwand können solche Aufgaben mit den Befehlen BCT, BCTR, BXLE und BXH gelöst werden.
Hasso Kramer
7. Logische Verknüpfung
Zusammenfassung
Logische Verknüpfungen sind die Grundlage aller Steuerungsvorgänge in der Hardware einer Datenverarbeitungsanlage. Sie stellen eine Schaltfunktion dar, in der zwei oder mehrere binäre Signale (Impulse) ein Ergebnissignal erzeugen. Schaltfunktionen mit zwei Variablen, den Zuständen „wahr“ (ausgedrückt durch die Ziffer 1) und „unwahr“ (Ziffer 0) gemäß der Booleschen Algebra, sind besonders interessant. Drei logische Verknüpfungen können durch Befehle vorteilhaft in Programmen benutzt werden:
  • das „logische UND“ (Konjunktion,
  • das „logische ODER“ (Disjunktion,
  • das „logische ausschließende ODER“ (Antivalenz).
Hasso Kramer
8. Umsetzen und Testen von Datenfeldern
Zusammenfassung
Dieser Befehl ist in seinen Funktionen ein erweiterter TR-Befehl (vgl. Teil III, 4.3). Anwendungsmöglichkeiten für den TRT-Befehl ergeben sich beim Prüfen von Feldinhalten auf numerischen Inhalt oder Ermitteln von variablen Feldlängen.
Hasso Kramer
9. Modifiziertes Ausführen von Befehlen — der EX-Befehl
Zusammenfassung
Das Beispiel von 8.2.2 zeigt die Verarbeitung von variabel langen Feldern. Die Modifikation der Übertragungslänge wird dort durch den STC-Befehl bewirkt. Man erkennt jedoch leicht, daß der Befehl STC z. B. für die Modifikation der Längenangaben in einem AP-Befehl nicht mehr geeignet ist, da L1 und L2 in einem Halbbyte stehen und nur ganze Bytes adressiert werden können. Dieselbe Überlegung gilt auch für Befehle anderer Strukturen, z.B. für den Befehl AR |3,4. Wendet man den Befehl EX (Execute) an, der zu Befehlstyp RX gehört, umgeht man diese Schwierigkeiten.
Hasso Kramer
10. Fehlersuche im Programm mit Hilfe eines Hauptspeicherabzuges
Zusammenfassung
Bei Ereignissen, die zu einer Programmunterbrechung führen, wird zwischen programm- und systembezogenen unterschieden. Zu den systembezogenen Unterbrechungen gehört die Koordinierung von Ein-/Ausgabeoperationen, die es erst gestattet, einen Mehrprogrammbetrieb ablaufen zu lassen. Zu den Programmunterbrechungsursachen, die im allgemeinen zur Programmbeendigung führen, gehören fehlerhafte Daten bei arithmetischen Operationen oder falsche Befehlsverschlüsselungen in Anwenderprogrammen. Mittels Dialogtesthilfen (Interactive Debugging) oder eines Hauptspeicherabzugs (Benutzer-Dump) kann der Fehler ermittelt werden, der zum Programmabbruch führte. Die interaktive Fehlersuche erlaubt dem Benutzer, sein Programm schrittweise während des Ablaufes am Bildschirm zu testen und ggf. sofort zu korrigieren.
Hasso Kramer
11. Codier-Praktikum
Zusammenfassung
Es werden zwei Aufgaben gestellt, die nach dem Durcharbeiten des gesamten Lernprogramms gelöst werden können. Die Musterlösungen sollen zum Vergleichen erst dann herangezogen werden, wenn eigene Lösungen vorliegen. Folgen Sie dabei auch — soweit bekannt — den Regeln für die Erstellung gut strukturierter Programme.
Hasso Kramer
12. Anhang
Zusammenfassung
Nachfolgend wird eine zusammenfassende Darstellung der neu hinzugekommenen Befehle, Anweisungen und Makro-Aufrufe gegeben und damit der in Teil III des Lernprogramms beschrieben Umfang der Assemblersprache erweitert. Einige Befehle, die sich nicht in ihren Funktionen, sondern nur durch den Befehlstyp unterscheiden, sind an dieser Stelle zusätzlich aufgeführt und dem Eigenstudium anheimgestellt. Weitergehende, über die Lernziele dieses Lernprogramms hinausgehende Informationen sind den herstellerspezifischen Druckschriften und Handbüchern zu entnehmen.
Hasso Kramer
Backmatter
Metadaten
Titel
Assembler IV
verfasst von
Dipl.-Ing. Hasso Kramer
Copyright-Jahr
1988
Verlag
Springer Berlin Heidelberg
Electronic ISBN
978-3-642-72998-0
Print ISBN
978-3-540-18370-9
DOI
https://doi.org/10.1007/978-3-642-72998-0