Home
1 Einleitung
Contents
1. Operanden C AC C AB Cr kkkxkxkxkkxkxxkf FIELD1 1 FIELD2 FIELD1 FIELD2 setzt die Anzeige 0 Equal setzt die Anzeige 2 High FIELD3 1 L FIELD3 1 FIELD3 FIELD3 wird getestet ob es lauter gleiche Zeichen enth lt setzt die Anzeige 0 Equal 59 CLCL 60 Allgemeine Befehle Compare Logical Long Funktion Der Befehl CLCL vergleicht den Inhalt eines Hauptspeicherbereichs logisch von links nach rechts mit einem anderen Hauptspeicherbereich Die beiden Bereiche k nnen bis zu 22 Byte d h bis zu 16 MB lang sein Die Anzeige wird gem dem Vergleichsergebnis gesetzt Assemblerformat CLCL R1 R2 R1 und R2 geradzahlig Maschinenformat 0 8 12 15 Beschreibung R1 und R2 bestimmen jeweils ein Paar von Registern bestehend aus den Mehrzweckre gistern R1 und R1 1 bzw R2 und R2 1 R1 und R2 m ssen beide geradzahlig sein andernfalls erfolgt eine Programmunterbrechung wegen Adre fehlers Der Operand1 bzw der Operand2 sind durch die Registerpaare Ri und R1 1 bzw R2 und R2 1 bestimmt Ihre Anfangsadressen werden dem ersten Register R1 bzw R2 ihre L ngen in Byte werden dem zweiten Register R1 1 bzw R2 1 entnommen Das Register R2 1 enth lt au erdem die Codierung des F llbyte U3119 J Z125 2 Allgemeine Befehle CLCL Die Adressendarstellung in R1 bzw R2 ist abh ngig vom Adressierungsmodus Es gilt folgende Zuordnung 24 Bit Adressierungsmodus 31 Bit Adressierungsmodu
2. 126 U3119 J Z125 2 Allgemeine Befehle PACK Pack Funktion Der Befehl PACK erzeugt aus einer entpackten Dezimalzahl des Sendefelds eine gepackte Dezimalzahl im Empfangsfeld Die Anzeige wird nicht ver ndert Assemblerformat D1 a B1 D2 2 B2 Maschinenformat 0 8 16 36 47 12 20 32 Beschreibung Durch D1 L1 B1 ist das Empfangsfeld durch D2 L2 B2 ist das Sendefeld adressiert 1 lt L1 L2 lt 16 Die im Sendefeld enthaltene entpackte Dezimalzahl wird ins Emp fangsfeld bertragen und dabei ins gepackte Format umgewandelt Das Sendefeld wird nicht darauf gepr ft ob es wirklich eine korrekte entpackte Dezi malzahl enth lt sondern wird so behandelt als enthalte es eine Beide Operanden werden von rechts nach links verarbeitet Von jedem Byte des Sende felds wird nur das rechte Halbbyte der Ziffernteil verwendet jedes linke Halbbyte wird ignoriert mit Ausnahme des linken Halbbyte im niedrigstwertigen Byte des Sendefelds das als Vorzeichen dient Das Vorzeichen und das rechte Halbbyte des niedrigstwertigen Byte des Sendefelds werden in ihrer Reihenfolge vertauscht in das niedrigstwertige Byte des Empfangs felds bertragen Alle weiteren rechten Halbbyte des Sendefelds werden aufeinanderfol gend in die weiteren Byte des Empfangsfelds bertragen und zwar immer zwei Halb byte des Sendefelds in ein Byte des Empfangsfelds Wenn das Sendefeld ausgesch pft ist bevor das Empfangsfeld gef llt ist
3. Bei einer Division ist der Divisor 0 oder der Quotient ist zu gro Die resultierende Mantisse einer Gleitpunktoperation ist 0 Die resultierende Charakteristik einer Gleitpunktoperation ist lt 0 Das Resultat einer Dezimal operation ist zu gro Das Resultat einer Festpunkt operation ist zu gro U3119 J Z125 2 Grundlagen Programmunterbrechungen Die spezifische Ursache jeder Programmunterbrechung ist bei jedem einzelnen Befehl dargestellt ausgenommen davon sind die Programmunterbrechungs Arten Privilegierte Operation und Falscher Operationscode die nicht befehlsspezifisch sind Bei einer Programmunterbrechung wird im allgemeinen Falle der verursachende Befehl nicht zu Ende ausgef hrt und das Resultat des Befehls ist nicht richtig Maskierbare Programmunterbrechungen Programmaske Die Programmunterbrechungen wegen Festpunkt berlaufs Dezimal berlaufs Exponen ten Unterlaufs und Signifikanz sind maskierbar Dies besagt da ein Anwenderpro gramm bestimmen kann ob in diesen F llen eine Programmunterbrechung erfolgen soll Die Maskierung geschieht in der Programmaske einem 4 Bit langen internen Regi ster der Zentraleinheit Jedem der 4 Bit ist eine der genannten Programmunterbrechun gen zugeordnet Es bedeutet ein Bitwert 1 da beim Auftreten der entsprechenden Ursache eine Programmunterbrechung erfolgt und ein Bitwert 0 da eine solche nicht erfolgt Das BS2000 besetzt zum Zeitpunkt des Sta
4. Maschinenformat 0 20 31 Beschreibung Das durch D2 X2 B2 adressierte Halbwort im Hauptspeicher wird vorzeichengerecht zum Inhalt des Mehrzweckregisters R1 addiert Der Register Operand wird als 32 Bit lange der Halbwort Operand als 16 Bit lange Festpunktzahl behandelt beide mit Vorzei chen Die Summe ist eine 32 Bit lange Festpunktzahl mit Vorzeichen und ersetzt den urspr nglichen Inhalt des Mehrzweckregisters R1 Festpunkt berlauf entsteht wenn die Summe gr er als 231 1 oder kleiner als 231 wird In diesem Fall ist das Ergebnis in R1 um 23 zu klein bzw zu gro die Anzeige wird dann auf 3 Overflow gesetzt und es erfolgt eine Programmunterbrechung wenn in der Programmaske das Bit f r Festpunkt berlauf 1 ist BS2000 Standard Anzeige 0 Zero Summe 0 1 Minus Summe lt 0 2 Plus Summe gt 0 3 Overflow Festpunkt berlauf U3119 J Z125 2 29 AH 30 Allgemeine Befehle Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler Adre fehler Festpunkt berlauf Lesezugriff auf Operand2 unm glich D2 X2 B2 keine Halbwortgrenze Summe gt 231 1 oder lt 2 1 Programmierhinweise Festpunkt berlauf entsteht dann wenn ein Bin rstellen berlauf in die Vorzeichenstelle ungleich ist dem Bin rstellen berlauf aus der Vorzeichenstelle Im Register R1 hat dann das Resultat ein falsches Vorzeichen Beispiel L AH 13 F 16999999 13 H 1 Register 13 F 17000000
5. Mit D1 L1 B1 wird das Empfangsfeld mit D2 L2 B2 wird das Sendefeld adressiert 1 lt L1 L2 lt 16 Nur das Sendefeld wird auf korrektes gepacktes Format gepr ft im Fehlerfalle erfolgt eine Programmunterbrechung wegen Datenfehlers Ein Dezimal berlauf tritt auf wenn das Sendefeld mehr signifikante Dezimalstellen auf weist als in das Empfangsfeld passen in diesem Fall wird der Befehl normal beendet es werden jedoch nur die 2L1 1 niedrigstwertigen Dezimalstellen des Sendefelds bertra gen und die h chstwertigen Dezimalstellen gehen verloren Die Anzeige wird auf 3 Overflow gesetzt Wenn das Bit f r Dezimal berlauf in der Programmaske auf 1 gesetzt ist BS2000 Standard erfolgt au erdem danach eine Programmunterbrechung Nach der Befehlsausf hrung hat eine echte Null im Sendefeld stets ein positives Vorzei chen C46 jedoch kann ein Resultat 0 das durch Dezimal U berlauf entstanden ist auch ein negatives Vorzeichen haben U3119 J Z125 2 Dezimalbefehle ZAP Anzeige O Zero Empfangsfeld 0 Vorzeichen C46 1 Minus Empfangsfeld lt 0 Vorzeichen D46 2 Plus Empfangsfeld gt 0 Vorzeichen C46 3 Overflow Sendefeld hat mehr signifikante Dezimalstellen als in das Empfangsfeld passen Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler Schreibzugriff auf Operandl oder Lesezugriff auf Operand2 unm glich Inkorrektes Format des Sendefelds zweiter Operand zu gro Datenfehler Dezimal be
6. XDR R1 R2 R1 0 oder 4 und R2 0 2 4 oder 6 XD R1 D2 X2 B2 R1 0 oder 4 und erweiterter Multiplikand und Multiplikator erweitertes Produkt XR R1 R2 R1 R2 0 oder 4 Maschinenformate ER RR x 3C R2 Kurze Operanden langes Produkt D2 Kurze Operanden Produkt langes E Lange Operanden langes Produkt D2 Lange Operanden Produkt langes t N N N 0 8 12 16 20 31 U3119 J Z125 2 Gleitpunktbefehle MD MDR ME MER MXD MXDR MXR eingefuegte Leerzeile Lange Operanden XDR RR X277 R2 erweitertes Produkt 0 erweitertes Produkt XR RR x 26 R2 Erw Operanden erweitertes Produkt Beschreibung Der erste Gleitpunktoperand ist der Multiplikand der zweite Gleitpunktoperand ist der Multiplikator Das normalisierte Produkt ersetzt den ersten Operanden Bei den Befehlen MER und ME haben Multiplikand und Multiplikator 6 Sedezimalstellen bei MDR MD MXDR und MXD haben sie 14 und bei MXR haben sie 28 Sedezimalstel len Das Produkt hat bei MER ME MDR und MD 14 Sedezimalstellen bei MXDR MXD und MXR hat es 28 Sedezimalstellen Zun chst werden Multiplikand und Multiplikator normalisiert Die Normalisierung ge schieht intern die Eingangs Operanden werden nicht ver ndert Die Charakteristiken der beiden Operanden werden addiert die beiden normaliserten Mantissen werden multipliziert das resultierende Produkt bi
7. Anzeige O Zero Ergebnis 0 1 Not Zero Ergebnis 0 2 Nicht verwendet 3 Nicht verwendet Programmunterbrechungen Art Ursachen Adre umsetzungsfehler x 4a8 x Lesezugriff auf Operand2 unm glich XI Lese Schreibzugriff auf Operandl unm glich XC Lese Schreibzugriff auf Operandl oder Lesezugriff auf Operand2 unm glich Adre fehler X D2 X2 B2 keine Wortgrenze 178 U3119 J Z125 2 Allgemeine Befehle X XC XI XR Programmierhinweise Die EXCLUSIV OR Befehle invertieren im ersten Operanden alle Bitstellen denen im zweiten Operanden eine Bitstelle mit dem Wert 1 gegen berliegt und lassen die bri gen Bitstellen des ersten Operanden unver ndert Die Verarbeitung der Operanden erfolgt byteweise von links nach rechts Bei XC d rfen die Operanden sich berlappen Dabei werden allerdings i a fr here Byte Operationen durch sp tere wieder ge ndert Wenn beim XR Befehl R1 R2 ist werden das Mehrzweckregister R1 und die An zeige auf Null gesetzt Der Befehl XC mit Operand1 Operand2 setzt alle Byte von Operand1 auf X 00 Bei Anwendungen der Befehle XI und XC in Multiprozessor Anlagen ist folgendes zu beachten Speicherzugriffe des ersten Operanden der Befehle XI und XC bestehen aus dem Lesen eines Byte aus dem Speicher und dem anschlie Benden Abspeichern des ver nderten Wertes in den Speicher Diese Lese und Abspeicherzugriffe auf ein einzel nes Byte geschehen nicht unbedingt sofort hintereinander
8. Im Gleitpunktregister 4 steht bei Befehlsabschlu der Wert X 80800000 0 5 1684 Die Anzeige und der rechte Teil des Gleitpunktregisters 4 sind unver ndert 235 LCDR LCER Gleitpunktbefehle 236 Load Complement Funktion Die Befehle LCER und LCDR laden die Gleitpunktzahl im Gleitpunktregister R2 mit umgekehrtem Vorzeichen in das Gleitpunktregister R1 und setzen die Anzeige gem dem Wert in R1 Assemblerformate kurze Operanden LCER R1 R2 R1 R2 0 2 4 oder 6 lange Operanden LCDR R1 R2 R1 R2 0 2 4 oder 6 Maschinenformate LCER RR x 33 2 Kurze Operanden z el LCDR RR 2 Lange Operanden 0 8 12 15 Beschreibung Die kurze LCER bzw lange LCDR Gleitpunktzahl im Gleitpunktregister R2 wird mit umgekehrtem Vorzeichen in das Gleitpunktregister R1 bertragen Es findet keine Nor malisierung statt Das Vorzeichen wird auch umgekehrt wenn die Mantisse des Eingangs Operanden 0 ist die Anzeige ist jedoch in diesem Fall auf O Zero gesetzt Anzeige O Zero Mantisse des Ergebnisses ist 0 1 Minus Ergebnis ist lt 0 2 Plus Ergebnis ist gt 0 3 Nicht verwendet U3119 J Z125 2 Gleitpunktbefehle LCDR LCER Programmunterbrechungen Art Gewicht Ursachen Adre fehler xX756 falsche Gleitpunktregisterangabe Programmierhinweise R1 darf R2 sein Der Befehl LCER bertr gt nur die linken 32 Bit des Gleitpunktregisters R2 und l t die rech
9. Ursachen Lesezugriff auf Operand2 unm glich U3119 J Z125 2 81 82 Beispiel Name L IC Operanden 5 XL4 ANNA 5 E Allgemeine Befehle ANNE im Mehrzweckregister 5 Anzeige unver ndert U3119 J Z125 2 Allgemeine Befehle ICM Insert Characters under Mask Funktion Der Befehl ICM bertr gt ein Zeichenfeld des Hauptspeichers in ausgew hlte Byte eines Mehrzweckregisters Die Anzeige wird gem dem Wert des bertragenen Feldes gesetzt Assemblerformat Name Operanden Bemerkungen R1 M3 D2 82 B0000 M3 BINT Maschinenformat 0 20 31 Beschreibung Die 4 Bit der Maske M3 Direktoperand entsprechen eins zu eins den 4 Byte des Mehrzweckregisters R1 von links nach rechts sowohl in der Maske wie im Register Diejenigen Byte in R1 denen Einsen in der Maske entsprechen werden durch aufeinan derfolgende Byte des mit D2 B2 adressierten Hauptspeicherfelds ersetzt Die Byte des Mehrzweckregisters denen eine Null in der Maske entspricht bleiben unver ndert Ist die Maske 0 oder sind alle eingesetzten Byte 00 wird die Anzeige auf O Zero gesetzt Andernfalls bestimmt das h chstwertige Bit des ersten eingesetzten Byte die Anzeige Ist dieses Bit 1 so wird die Anzeige auf 1 Minus gesetzt andernfalls auf 2 Plus Anzeige 0O Zero Alle eingesetzten Byte sind 00 oder die Maske ist 046 1 Minus Das h chstwertige Bit des ersten eingesetzten Byte 1 2 Plus Das h
10. das Anwenderprogramm die Unterbrechung angemessen behandeln kann Jede m gliche Programmunterbrechung wird durch ihr Unterbrechungsgewicht identifi ziert Das Unterbrechungsgewicht ist eine zweistellige Sedezimalzahl die bei vorhande nem STXIT Proze diesem im Mehrzweckregister 3 mitgegeben wird und die bei fehlen dem STXIT Proze bei der Programmbeendigung auf SYSOUT ausgegeben wird U3119 J Z125 2 13 Programmunterbrechungen Es gilt folgendes allgemeine Schema Art der Programm unterbrechung Unterbrechungsge sedezimal wicht Adre umsetzungsfehler Privilegierte Operation Falscher Operationscode Adre fehler Datenfehler Exponenten berlauf Divisionsfehler Signifikanz Exponenten Unterlauf Dezimal berlauf Festpunkt berlauf Grundlagen allgemeine Ursachen Ein Operand enth lt eine virtu elle Adresse die nicht f r das Anwenderprogramm bereitgestellt allocated ist Auf diesen Ope randen kann deshalb kein Lese oder Schreibzugriff erfolgen Es wurde ein Befehl aufgerufen der kein Assemblerbefehl aber auch kein unzul ssiger Befehl ist Es wurde ein unzul ssiger Befehl aufgerufen Die Nebenbedingung eines Befehls z B eine Ausrichtungs Bedingung ist nicht erf llt Ein Dezimaloperand enth lt keine korrekte gepackte Dezimalzahl oder zwei Dezimal Operanden berlappen sich inkorrekt Die resultierende Charakteristik einer Gleitpunktoperation ist gt 127
11. 53 55 57 71 84 87 92 98 100 135 220 L Konstantentyp 251 L Feld 24 25 LA 28 30 51 89 90 169 199 LAE 266 L ngenfeld 24 LAM 268 Langes Format von Gleitpunktzahlen 216 Laufvariable 50 LCDR 236 LCER 236 LCR 91 92 LD 220 224 232 238 245 259 LDR 238 LE 220 229 235 238 251 255 LER 238 308 U3119 J Z125 2 Stichw rter LH 46 51 79 93 94 LM 28 32 63 95 96 112 135 LNDR 240 LNER 240 LNR 97 98 logische Bin rzahlenarithmetik 19 LPDR 242 LPER 242 LPR 99 100 LR 71 87 LRDR 244 LRER 244 245 LTDR 246 LTER 246 LTR 101 169 M M 102 M Feld 24 Mantisse 213 Markierung bei EDMK 198 Maske 21 24 Maskenzeichen ED EDMK 197 Maskierung von Programmunterbrechungen 15 MB Megabyte 1 048 576 Byte 5 MC 104 MDR 248 ME 248 251 Mehrzweckregister 10 Mehrzweckregister 0 10 95 162 273 Mehrzweckregister 1 95 162 170 171 198 273 Mehrzweckregister 2 170 171 Mehrzweckregister Paar 10 MER 248 MH 105 106 MP 181 201 202 MR 102 Multiplikation durch SRP 208 Multiprozessor Anlagen 123 126 179 Multiprozessor Anwendungen 69 112 123 126 173 179 MVC 107 108 111 113 MVCL 79 108 109 112 MVI 108 113 199 MVN 114 115 119 U3119 J Z125 2 309 Stichw rter 310 MVO 116 118 192 MVZ 120 MXD 248 MXDR 248 MXR 248 N N 121 NC 121 NI 120 121 123 Nicht normalisierte Gleitpunktzahlen 214 NOP 104 287 NOPR 287 Normali
12. D1 L1 B1 wird mit der gepackten Dezimalzahl im Feld des zweiten Operanden D2 L2 B2 vorzeichengerecht verglichen und die Anzeige gem dem Vergleichsergebnis gesetzt Beide Operanden werden auf korrektes gepacktes Format gepr ft im Fehlerfalle erfolgt eine Programmunterbrechung wegen Datenfehlers Dezimal berlauf kann nicht auftreten Anzeige 0 Equal Operandi Operand2 1 Low Operandi lt Operand2 2 High Operandi gt Operand2 3 Nicht verwendet Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Lesezugriff auf Operandl oder Operand2 unm glich Datenfehler x 60 Inkorrektes Format eines Operanden U3119 J Z125 2 Dezimalbefehle CP Programmierhinweise Beide Operanden werden als Ganzzahlen verarbeitet Beide Operanden bleiben stets unver ndert Die Verarbeitung der Operanden geschieht von rechts nach links Unterschiedliche Vorzeichencodierungen die aber gleiche Bedeutung haben z B C und F werden beim Vergleich gem ihrer Bedeutung behandelt Der Vergleich einer negativen mit einer positiven Null ergibt die Anzeige 0 Equal Die beiden Operanden d rfen sich berlappen aber dann m ssen die Adressen ihrer niedrigstwertigen Byte gleich sein D1 B1 L1 1 D2 B2 L2 1 andernfalls erfolgt eine Programmunterbrechung wegen Datenfehlers Beispiele Die folgenden Beispiele von CP Befehlen ergeben folgende Ergebnisse CFIELD Beispiel Befehl
13. R1 R2 R1 R2 1 D2 X2 B2 1 R2 R1 D2 X2 B2 R1 R2 R1 R2 R1 R3 D2 B2 R1 R3 D2 B2 R1 D2 X2 B2 R1 D2 X2 B2 R1 R2 R1 R3 D2 B2 R1 D2 X2 B2 R1 R2 R1 D2 X2 B2 R1 D2 X2 B2 D1 L B1 D2 B2 R1 R2 D1 B1 12 R1 M3 D2 B2 R1 R2 D1 L1 B1 D2 L2 B2 R1 R2 R1 R2 R1 R3 D2 B2 R1 D2 X2 B2 R1 D2 X2 B2 R1 D2 X2 B2 R1 D2 X2 B2 R1 R2 R1 D2 X2 B2 R1 R2 Befehle nach mnemotechnischem Code Mnemo Op Bef L nge An Bef Assembler Code Code Typ in Byte zeige art format DP FD ss 6 nein Dez D1 L1 B1 D2 L2 B2 DR 1D RR 2 nein Allg R1 R2 DXR B22D RRE 4 nein Glp R1 R2 EAR B24F RRE 4 nein ESA R1 R2 ED DE ss 6 ja Dez D1 L B1 D2 B2 EDMK DF ss 6 ja Dez D1 L B1 D2 B2 EX 44 RX 4 ja Allg R1 D2 X2 B2 befehlsabh ngig HDR 24 RR 2 nein Glp R1 R2 HER 34 RR 2 nein Glp R1 R2 IAC B224 RRE 4 ja ESA R1 IE 43 RX 4 nein Allg R1 D2 X2 B2 IC BF RS 4 ja Allg R1 M3 D2 B2 IP B222 RRE 4 nein Allg R1 L 58 RX 4 nein Allg R1 D2 X2 B2 LA 41 RX 4 nein Allg R1 D2 X2 B2 LAE 51 RX 4 nein ESA R1 D2 x2 B2 LA 9A RS 4 nein ESA R1 R3 D2 B2 LCDR 23 RR 2 ja Glp R1 R2 LCER 33 RR 2 ja Glp R1 R2 LCR 13 RR 2 ja Allg R1 R2 LD 68 RX 4 nein Glp R1 D2 X2 B2 LDR 28 RR 2 nein Glp R1 R2 LE 78 RX 4 nein Glp R1 D2 X2 B2 LER 38 RR 2 nein Glp R1 R2 LH 48 RX 4 nein Allg R1 D2 X2 B2 L 98 RS 4 nein Allg R1 R3 D2 B2 LNDR 21 R
14. Zugriff eines anderen Prozessors auf den gleichen Speicherplatz ausgeschlossen ist Der urspr ngliche Wert der entsprechenden Operanden dieser Befehle kann ber die gesetzte Anzeige abgefragt werden Nicht geeignet sind folgende Befehle und alle anderen Speicherzugriffsbefehle da sie einen simultanen Zugriff eines anderen Prozessors nicht ausschlie en MVI NI Ol XI MVC NC OC XC ST STM STC R cksetzen von Sperren Zum R cksetzen von bin ren Sperren auf Rechnern 2 7 590 sind folgende Befehle geeignet f r ein Byte der Befehl MVI f r ein Wort die Befehle ST und MVC f r ein Doppelwort die Befehle STM STD und MVC Wie bereits weiter vorn erw hnt sind auf anderen Rechnern die Befehle CS CDS und TS zu verwenden Da das Schreiben bei diesen Befehlen f r die gegebenen L ngen sicher ist liegt in Kombination mit TS CS CDS immer eine eindeutige Speicherbele gung vor Bedingungen bei Verwendung des Befehls MVC sind die beiden Operanden d rfen sich nicht berlappen und beide m ssen auf Wort oder Doppelwort Grenze entsprechend ihrer L nge ausgerichtet sein Bei Z hler Sperren ist das Herunterz hlen als Setzen zu betrachten also unbedingt mit den Befehlen CS CDS ausf hren Nicht geeignet zum Zur cksetzen von bin ren Sperren und Lock Worten sind die nach folgend aufgef hrten Befehle bei denen zwei Speicherzugriffe notwendig sind erst Lesen dann Schreiben weil sie nicht gegen dazwischenkommen
15. kann man von diesem Brauch abweichen U3119 J Z125 2 Allgemeine Befehle TR Beispiele Beispiel 1 Um eine Zeichenfolge CHARFLD aus Kleinbuchstaben in Gro buchstaben zu bersetzen EBCDI Code unterstellt kann folgender TR Befehl verwendet werden oc CONVTB a ABCDEFGHI CONVTB j IKLMNOPOR CONVTB s STUVWXYZ CONVTB CHARFLD CONVTB Beispiel 2 Die bertragung eines Zeichenfelds ORGFIELD in ein Zeichenfeld INVFIELD unter Inver tierung seines Inhalts d h so da das letzte Byte von ORGFIELD zum ersten Byte in INVFIELD das vorletzte Byte von ORGFIELD zum zweiten Byte von INVFIELD wird u s f kann so erfolgen 0 L ORGFIELD F llen INVFIELD 1 0 mit Platznummern MUSTERN 0 0 Bel eye DO 0 INVFIELD 1 1 1 1 0 0 MUSTERN INVFIELD L ORGFIELD ORGFIELD Diese Befehle erzeugen z B aus ORGFIELD DC 0123456789 das invertierte Feld INVFIELD DC 9876543210 U3119 J Z125 2 169 TRT 170 Allgemeine Befehle Translate and Test Funktion Der Befehl TRT testet die Byte eines Zielfeldes gem einer Umsetzungstabelle Die Anzeige wird gem dem Testergebnis gesetzt Assemblerformat Maschinenformat 0 8 20 32 36 47 Beschreibung Mit D1 B1 wird das Zielfeld der L nge L Byte adressiert mit D2 B2 die Umsetzungs tabelle Das Zielfeld wird von links nach rechts byteweise verarbeitet Jedes Byte des Zielfelds Argument
16. kurze Operanden LPER R1 R2 R1 R2 0 2 4 oder 6 lange Operanden LPDR R1 R2 R1 R2 0 2 4 oder 6 Maschinenformate LPER RR x 30 2 Kurze Operanden z el LPDR RR 2 Lange Operanden 0 8 12 15 Beschreibung Die kurze LPER bzw lange LPDR Gleitpunktzahl im Gleitpunktregister R2 wird mit positivem Vorzeichen in das Gleitpunktregister R1 bertragen Es findet keine Normalisie rung statt Das Vorzeichen wird auch positiv gesetzt wenn die Mantisse des Eingangs Operanden 0 ist die Anzeige wird jedoch in diesem Fall auf O Zero gesetzt Anzeige O Zero Mantisse des Ergebnisses ist 0 1 Nicht verwendet 2 Plus Ergebnis ist gt 0 3 Nicht verwendet U3119 J Z125 2 Gleitpunktbefehle LPDR LPER Programmunterbrechungen Art Gewicht Ursachen Adre fehler xX756 falsche Gleitpunktregisterangabe Programmierhinweise R1 darf R2 sein Der Befehl LPER bertr gt nur die linken 32 Bit des Gleitpunktregisters R2 und l t die rechten 32 Bit des Gleitpunkregisters R1 unver ndert U3119 J Z125 2 243 LRDR LRER Gleitpunktbefehle 244 Load Rounded Funktion Die Befehle LRER und LRDR laden die Gleitpunktzahl im Gleitpunktregister Paar R2 in das Gleitpunktregister R1 und runden sie dabei auf das n chstkleinere Gleitpunktformat Die Anzeige wird nicht ver ndert Assemblerformate kurzer Operandl langer Operand2 LRER R1 R2 R1 R2 0 2 4 oder 6 lan
17. program space hei t weitere Adre r ume f r Daten sogenannte Datenr ume data spaces zur Verf gung gestellt Um die M glichkeit der Adre raumerweiterung zu nutzen mu im Programm dem BS2000 mitgeteilt werden siehe Befehl SAC Kapitel 6 da es mit dem zus tzlichen Registersatz den Zugriffsregistern siehe 2 2 2 und Kapitel 6 arbeiten d h im AR Modus laufen soll U3119 J Z125 2 Grundlagen 2 1 4 U3119 J Z125 2 Hauptspeicher Adressierung Befehlsadressen Befehlsfolgeadressen Ein Anwenderprogramm besteht gew hnlich aus Befehlen und Daten Beide sind im Hauptspeicher gespeichert und beide haben virtuelle Adressen Die Adresse eines Befehls die Befehlsadresse ist die Adresse seines ersten Byte dieses Byte enth lt bei allen Befehlen den sog Operationscode Bei jeder Ausf hrung eines Befehls wird von der Zentraleinheit die Befehlsfolgeadresse ermittelt das ist die um die L nge in Byte des momentanen Befehls erh hte Befehlsadresse Wenn der momentane Befehl kein Sprungbefehl ist dessen Sprungbedingung erf llt ist dann wird nach der Befehlsausf h rung des momentanen Befehls die Befehlsfolgeadresse zur Befehlsadresse gemacht und demzufolge bei dem folgenden Befehl fortgefahren andernfalls bei der Adresse die im Sprungbefehl als Sprungadresse bestimmt ist Auch wenn der AR Modus eingeschaltet ist liegt die Befehlsadresse immer im Programmraum Bei einem Sprungbefehl wird das entsprechende Zugriffsregist
18. r weitere Erl uterungen auf die Beschreibung der Befehle CS und CDS sowie auf den Anhang 7 6 verwiesen U3119 J Z125 2 Allgemeine Befehle UNPK Unpack Funktion Der Befehl UNPK erzeugt aus einer gepackten Dezimalzahl des Sendefelds eine ent packte gezonte Dezimalzahl im Empfangsfeld Die Anzeige wird nicht ver ndert Assemblerformat UNPK D1 L1 B1 D2 L2 B2 1 lt L1 L2 lt 16 Maschinenformat 0 8 16 12 20 32 36 47 Beschreibung Durch D1 L1 B1 ist das Empfangsfeld durch D2 L2 B2 ist das Sendefeld adressiert 1 lt L1 L2 lt 16 Die im Sendefeld enthaltene gepackte Dezimalzahl wird ins Emp fangsfeld bertragen und dabei ins entpackte gezonte Format umgewandelt Das Sendefeld wird nicht darauf gepr ft ob es wirklich eine korrekte gepackte Dezimal zahl enth lt sondern wird so behandelt als enthalte sie eine Beide Operanden werden byteweise von rechts nach links verarbeitet Zun chst werden die beiden Halbbyte des niedrigstwertigen Byte des Sendefelds in ihrer Reihenfolge ver tauscht in das niedrigstwertige Byte des Empfangsfelds bertragen Danach wird jedes weitere Halbbyte des Sendefelds in das rechte Halbbyte eines Byte des Empfangsfelds bertragen und das jeweils linke Halbbyte Zone F gesetzt Wenn das Sendefeld vor dem Empfangsfeld ausgesch pft ist d h wenn 2L2 lt L1 1 ist werden die linken L1 2L2 1 Byte des Empfangsfelds mit FO gef llt wenn das Empfangsfeld
19. tigen ein Paar von Gleit punktregistern entweder das Paar mit der Nummer 0 aus den Gleitpunktregistern 0 und 2 oder das Paar mit der Nummer 4 aus den Gleitpunktregistern 4 und 6 Eine kurze Gleitpunktzahl belegt in einem Gleitpunktregister nur die linken 32 der insge samt 64 Bit Die rechten 32 Bit werden bei allen Gleitpunktbefehlen mit kurzen Operan den ignoriert bzw bleiben unver ndert wenn kurze Gleitpunktzahlen in einem Register erzeugt werden Wenn das R1 oder R2 Feld eines Gleitpunktbefehls eine Registernummer enth lt die nicht gleich 0 2 4 oder 6 lautet oder bei Befehlen f r das erweiterte Format eine Registerpaar Nummer die nicht gleich 0 oder 4 lautet so findet eine Programmunterbre chung wegen Adre fehlers statt U3119 J Z125 2 217 berblick 218 Gleitpunktbefehle Wertebereich von Gleitpunktzahlen Der absolute Wertebereich W normalisierter Gleitpunktzahlen h ngt von ihrem Format ab Kurzes Format 1665 lt W lt 1 168 166 Langes Format 16 65 lt W lt 1 64 1663 Erweitertes Format 16 85 lt W lt 1 16 28 16683 In allen drei Formaten ergibt sich f r den absoluten Wertebereich W angen hert 5 4 1079 lt W lt 7 2 107 Schutzziffer Das endg ltige Ergebnis eines Gleitpunktbefehls hat im Falle des kurzen Formats 6 im Falle des langes Formats 14 und im Falle des erweiterten Formats 28 Sedezimalstellen Zwischenergebnisse w hrend der Befehlsdurchf hrung haben
20. wenn also L2 lt 211 1 ist werden die h chstwertigen 2L1 L2 1 Halbbyte des Empfangsfelds mit 046 besetzt Wenn das Empfangsfeld zu kurz ist um alle rechten Halbbyte des Sendefelds aufzunehmen d h wenn 2L1 lt L2 1 ist werden die h chstwertigen L2 2L1 1 Byte des Sendefelds ignoriert U3119 J Z125 2 127 PACK 128 Allgemeine Befehle Die beiden Operanden d rfen sich berlappen Dabei ver ndert im allgemeinen eine sp tere Byte Operation eine fr here desselben Befehls Der Befehl wird so ausgef hrt als werde jedes Byte des Empfangsfelds unmittelbar dann gespeichert wenn die f r es ben tigten Halbbyte im Sendefeld gelesen sind Anzeige Nicht ver ndert Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler Schreibzugriff auf Operandl oder Lesezugriff auf Operand2 unm glich Beispiele Die folgenden Beispiele von PACK Befehlen liefern folgende Ergebnisse DFIELD vorher Beispiel Befehl DFIELD nachher ohne Belang PAL ohne Belang P 00123 ohne Belang P 3 plus Dezimal berlauf XS LD 1 x 98 x 23456789 x 87986789 Das letzte Beispiel zeigt einen hoffentlich abschreckenden Fall von berlappung bei dem sich w hrend der Befehlsausf hrung das Sendefeld selbst berschreibt U3119 J Z125 2 Allgemeine Befehle S SR Subtract Funktion Die Befehle SR und S subtrahieren zwei 32 Bit lange Festpunktzahlen vorzeichenge recht Die Anzeige wird ge
21. 1 bis 256 Byte aus einem Hauptspeicherbereich in einen anderen Hauptspeicherbereich Die Anzeige wird nicht ver ndert Assemblerformat Pas L B1 D2 B2 1s L lt 256 Maschinenformat 0 8 20 32 36 47 Beschreibung Das mit D2 B2 adressierte Zeichenfeld der L nge L Byte wird byteweise von links nach rechts in den mit D1 B1 adressierten Hauptspeicherbereich bertragen Anzeige Nicht ver ndert Programmunterbrechungen Ursachen Schreibzugriff auf Operandl oder Lese zugriff auf Operand2 unm glich U3119 J Z125 2 107 MVC Allgemeine Befehle Programmierhinweise Die Operandenfelder d rfen sich berlappen Man kann sich die berlappungsm glichkeit des MVC zunutze machen um ein Feld zu l schen d h mit einem konstanten Bytewert zu f llen Dazu speichert man die sen Bytewert in das Byte 0 D1 B1 des ersten Operanden z B mit MVI und f hrt danach einen MVC aus dessen Operand1 Adresse D1 B1 1 und dessen Ope rand2 Adresse D1 B1 ist Dadurch wird das Byte 0 ber den ersten Operanden ausgebreitet siehe Beispiel F r Feldl ngen gt 256 Byte steht der Befehl MVCL zur Verf gung Beispiel MVI FIELD QG L schen FIELD mit MVC FIELD 1 L FIELD 1 FIELD Leerzeichen 108 U3119 J Z125 2 Allgemeine Befehle MVCL Move Long Funktion Der Befehl MVCL bertr gt den Inhalt eines Hauptspeicherbereichs von links nach rechts in einen anderen Hauptspeicherbereich und
22. 1 und darf maximal 8 Byte betragen sie mu au erdem kleiner sein als die L nge des Multiplikan den 1 lt L2 lt Min L1 1 8 Die L nge des Multiplikanden L1 mu gr er sein als die des Multiplikators L2 lt L1 lt 16 Wenn diese Bedingungen nicht erf llt sind erfolgt eine Pro grammunterbrechung wegen Adre fehlers Der Multiplikand mu mindestens soviele f hrende Byte mit dem Inhalt 00 besitzen wie der Multiplikator lang ist andernfalls erfolgt eine Programmunterbrechung wegen Datenfehlers Eine solche erfolgt auch wenn einer oder beide Operanden nicht korrekt gepackte Dezimalzahlen darstellen Das Vorzeichen des Produkts wird nach den algebraischen Regeln ermittelt auch wenn ein oder beide Operanden 0 sind Ein Dezimal berlauf kann nicht auftreten Anzeige Nicht ver ndert U3119 J Z125 2 201 MP 202 Dezimalbefehle Programmunterbrechungen Art Adre umsetzungsfehler Adre fehler Datenfehler Gewicht Ursachen Lese Schreibzugriff auf Operandl oder Lesezugriff auf Operand2 unm glich L1 oder L2 falsch 1 Inkorrektes Format eines Operanden 2 Der Multiplikand hat nicht wenigstens L2 f hrende Null Byte Programmierhinweise Beide Operanden werden als Ganzzahlen verarbeitet das Produkt ist eine Ganzzahl Im Produkt wird ein positives Vorzeichen durch C ein negatives Vorzeichen durch D dargestellt Multiplikand und Multiplikator d rfen sich berlappen aber dann m ssen di
23. 100 stel Sekunden im Mehrzweckregister 1 und der Befehl CVD konver tiert dieses Ergebnis in gepackt dezimales Format U3119 J Z125 2 159 STCM 160 Allgemeine Befehle Store Characters under Mask Funktion Der Befehl STCM bertr gt ausgew hlte Byte eines Mehrzweckregisters in ein Feld im Hauptspeicher Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen STCM R1 M3 D2 B2 B 0000 lt M3 lt B 1111 Maschinenformat 0 20 31 Beschreibung Die 4 Bit der Maske M3 entsprechen eins zu eins den 4 Byte des Mehrzweckregisters R1 von links nach rechts sowohl in der Maske wie im Register Diejenigen Byte in R1 denen Einsen in der Maske gegen berliegen werden in aufeinanderfolgende Byte des mit D2 B2 adressierten Hauptspeicherbereichs bertragen Anzeige Nicht ver ndert Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Schreibzugriff auf Operand2 unm glich U3119 J Z125 2 Allgemeine Befehle STCM Programmierhinweise Die L nge in Byte des Hauptspeicherbereichs ist gleich der Anzahl der Einsen in der Maske Bei Verwendung einer Maske aus lauter Einsen B 1111 leistet der Befehl STCM das gleiche wie der Befehl ST aber das Hauptspeicherfeld braucht nicht an einer Wortgrenze ausgerichtet zu sein Beispiel 15 B 0101 FIELD Speichern des zweiten und vierten Byte von Register 15 in die Hauptspeicherbyte FIELD u
24. 2 ja Allg SS 6 nein Allg RX 4 ja Allg S 4 nein ESA RRE 4 nein ESA RX 4 ja Glp RR 2 ja Glp RX 4 ja Glp RR 2 ja Glp RX 4 ja Allg RX 4 ja Allg RS 4 ja Allg RS 4 ja Allg RS 4 nein Allg RS 4 nein Allg RR 2 ja Allg SS 6 ja Dez RR 2 ja Allg RR 2 ja Allg RS 4 ja Allg RS 4 ja Allg RS 4 nein Allg RS 4 nein Allg SS 6 ja Dez RX 4 nein Allg RS 4 nein ESA RX 4 nein Allg S 4 ja Allg RS 4 nein Allg RX 4 nein Glp RX 4 nein Glp RX 4 nein Allg RS 4 nein Allg RX 4 ja Glp RR 2 ja Glp RR 2 nein Allg RX 4 ja Glp RR 2 ja Glp RR 2 ja Glp RRE 4 ja ESA SI 4 ja Allg SS 6 nein Allg SS 6 ja Allg S 4 ja Allg SS 6 nein Allg Assembler format R1 R2 R1 R2 R1 D2 X2 B2 D1 L B1 D2 B2 D1 B1 I2 R1 R2 R1 D2 X2 B2 D1 L B1 D2 B2 D1 B1 I2 R1 R2 D1 L1 B1 D2 L2 B2 R1 D2 X2 B2 D2 B2 R1 R2 R1 D2 X2 B2 R1 R2 R1 D2 X2 B2 R1 R2 B2 B2 D1 L1 B1 D2 L2 B2 R1 R1 R2 R1 D2 R1 D2 B2 D1 L1 B1 D2 B2 I3 R1 D2 X2 B2 R1 R3 D2 B2 R1 D2 X2 B2 D2 B2 R1 M3 D2 B2 R1 D2 X2 B2 R1 D2 X2 B2 R1 D2 X2 B2 R1 R3 D2 B2 R1 D2 X2 B2 R1 R2 I R1 D2 X2 B2 R1 R2 R1 R2 R1 R2 D1 B1 I2 L B1 D2 B2 L B1 D2 B2 B2 L1 B1 D2 L2 B2 281 Befehle nach mnemotechnischem Code Mnemo Op Bef L nge An Bef Assembler Code Code Typ in Byte zeige art format 57 x RX j R1 D2 X2 B2 XC D7 ss j D1 L B1 D2 B2 XI
25. 74 Allgemeine Befehle Convert to Decimal Funktion Der Befehl CVD konvertiert eine 32 Bit lange Festpunktzahl in eine gepackte 8 Byte lange Dezimalzahl Die Anzeige wird nicht ver ndert Assemblerformat R1 D2 X2 B2 D2 X2 B2 Doppelwortgrenze Maschinenformat 0 20 31 Beschreibung Die Festpunktzahl mit Vorzeichen im Mehrzweckregister R1 wird in eine genau 8 Byte lange 15 stellige gepackte Dezimalzahl konvertiert und in das mit D2 X2 B2 adressierte Doppelwort des Hauptspeichers bertragen Das Mehrzweckregister R1 bleibt unver n dert Anzeige Nicht ver ndert Programmunterbrechungen Art Ursachen Schreibzugriff auf Operand2 unm glich D2 X2 B2 keine Doppelwortgrenze Adre umsetzungsfehler Adre fehler U3119 J Z125 2 Allgemeine Befehle CVD Programmierhinweise Es kann jede 32 Bit lange vorzeichenbehaftete Festpunktzahl konvertiert werden Wenn die Dezimalzahl positiv ist wird ihr Vorzeichen C gesetzt sonst D46 Beispiele Die folgenden Beispiele liefern folgende Ergebnisse in FIELD das an einer Doppelwort grenze ausgerichtet sein mu Register 3 Beispielbefe FIELD an D wortgrenze EY2593 PL8 255 Ei 2557 PL8 255 XUEFEEEEERF PL8 1 X 80000000 PL8 2147483648 U3119 J Z125 2 75 76 Allgemeine Befehle Divide Funktion Die Befehle DR und D dividieren eine 64 Bit lange Festpunktzahl durch eine 32 Bit lan
26. 97 SI j D1 B1 I2 XR 17 RR R1 R2 ZAP F8 ss j D1 L1 B1 D2 L2 B2 282 U3119 J Z125 2 7 3 U3119 J 2125 2 Befehle nach Operationscode Op Code nemo Bef L nge An Bef Code typ in Byte zeige art SPM RR 2 ja Allg BALR RR 2 nein Allg BCTR RR 2 nein Allg BCR RR 2 nein Allg SVC RR 2 nein Allg BSM RR 2 nein Allg BASSM RR 2 nein Allg BASR RR 2 nein Allg VCL RR 2 ja Allg CLCL RR 2 ja Allg LPR RR 2 ja Allg LNR RR 2 ja Allg LTR RR 2 ja Allg LCR RR 2 ja Allg R RR 2 ja Allg CLR RR 2 ja Allg OR RR 2 ja Allg XR RR 2 ja Allg LR RR 2 nein Allg CR RR 2 ja Allg AR RR 2 ja Allg SR RR 2 ja Allg MR RR 2 nein Allg DR RR 2 nein Allg ALR RR 2 ja Allg SLR RR 2 ja Allg LPDR RR 2 ja Glp LNDR RR 2 ja Glp LTDR RR 2 ja Glp LCDR RR 2 ja Glp HDR RR 2 nein Glp LRDR RR 2 nein Glp XR RR 2 nein Glp XDR RR 2 nein Glp LDR RR 2 nein Glp CDR RR 2 ja Glp ADR RR 2 ja Glp SDR RR 2 ja Glp MDR RR 2 nein Glp DDR RR 2 nein Glp AWR RR 2 ja Glp SWR RR 2 ja Glp LPER RR 2 ja Glp LNER RR 2 ja Glp LTER RR 2 ja Glp LCER RR 2 ja Glp HER RR 2 nein Glp LRER RR 2 nein Glp AXR RR 2 ja Glp SXR RR 2 ja Glp LER RR 2 nein Glp Assembler format R1 Rl Rl 1 I Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Rl Sabre Rl Rl Rl Rl Rl Rl Rl Rl Rl Befehle na
27. AE ADR AD und AXR addieren zwei Gleitpunktzahlen Die normali sierte Summe ersetzt den ersten Operanden Die Anzeige wird gem dem Wert der Summe gesetzt Assemblerformate kurze Summanden kurze Summe AER R1 R2 R1 R2 0 2 4 oder 6 AE R1 D2 X2 B2 R1 0 2 4 oder 6 und lange Summanden lange Summe ADR R1 R2 R1 R2 0 2 4 oder 6 AD R1 D2 X2 B2 R1 0 2 4 oder 6 und x erweiterte Summanden erweiterte Summe AXR R1 R2 R1 R2 0 oder 4 Maschinenformate AER RR X 3A R2 Kurze Operanden E Bei 0 12 Lange Operanden AD RX X 6A AXR RR X 36 R2 Erweiterte Operanden p N oj N Lange Operanden 16 20 31 U3119 J Z125 2 221 AD ADR AE AER AXR Gleitpunktbefehle 222 Beschreibung Zun chst werden die Charakteristiken der beiden Operanden verglichen die Mantisse des Operanden mit der kleineren Charakteristik wird um die Differenz der Charakteristi ken nach rechts geschoben und seine Charakteristik wird um denselben Betrag erh ht so da die Charakteristiken gleich werden Die zuletzt hinausgeschobene Sedezimailzif fer wird als Schutzziffer aufbewahrt Die Schutzziffer des anderen Operanden oder beider Operanden wenn vor der Addition die Charakteristiken gleich waren wird 0 gesetzt Anschlie end werden die beiden Mantissen einschlie lich der Schutzziffern unter Ber ck sichtigung der Vorzeichen addiert Die Summe bildet ein Zwischenergebnis
28. Anzeige 2 Plus In vielen Programmen findet man solche einfachen Register Inkrementierungen mit dem Befehl LA 13 1 13 ausgef hrt und nicht wie hier mit dem Befehl AH 13 H 1 Ein sol cher LA Befehl w re jedoch in obigem Beispiel nicht sinnvoll Wenn n mlich das Pro gramm im 24 Bit Adressierungsmodus abl uft liefert der Befehl LA nicht das vermutlich gew nschte Ergebnis 17000000 sondern das ganz andere Resultat 222784 d h 17000000 modulo 22 Nur wenn das Programm im 31 Bit Adressierungsmodus ausge f hrt wird erg be sich nach dem LA der Wert 17000000 Adressen wie sie der Befehl LA erzeugt sind eben etwas anderes als Festpunktzahlen U3119 J Z125 2 Allgemeine Befehle AL ALR Add Logical Funktion Die Befehle ALR und AL addieren zwei 32 Bit lange Bin rzahlen logisch Die Anzeige wird gem dem Wert der Summe gesetzt Assemblerformate ALR R1 R2 AL R1 D2 X2 B2 D2 X2 B2 Wortgrenze Maschinenformate Beschreibung Durch den Befehl ALR wird der Inhalt des Mehrzweckregisters R2 durch den Befehl AL wird das mit D2 X2 B2 adressierte Wort des Hauptspeichers logisch zum Inhalt des Mehrzweckregisters R1 addiert Die Summe ist eine 32 Bit lange Bin rzahl ohne Vorzeichen und ersetzt den urspr ngli chen Inhalt des Mehrzweckregisters R1 Alle 32 Bit beider Operanden sind an der Addition beteiligt Ein bertrag ber die Bit stelle 0 hinaus wird in der Anzeige dargestellt Anzeige O Zero Summ
29. B durch ein Leerzeichen oder einen Schutzstern ersetzt sein sollen siehe Beispiele Der Befehl EDMK erleichtert das Einf gen eines Vorzeichens unmittelbar vor die h chstwertige von Null verschiedene Dezimalziffer der letzten aufbereiteten Dezimal zahl Wenn f r die Aufbereitung dieser Dezimalzahl in der Maske ein Signifikanzstar ter verwendet wurde ist zu empfehlen vor dem Aufruf von EDMK dessen Adresse ins Mehrzweckregister 1 zu laden allerdings um 1 erh ht Dann enth lt n mlich das Register 1 nach dem Befehl EDMK sowohl bei Signifikanz Einschaltung durch den Signifikanzstarter als auch bei der Signifikanz Einschaltung durch die h chstwertige Dezimalziffer 0 die Adresse der h chstwertigen gezonten Dezimalziffer und es zeigt demzufolge das um Eins verminderte Register 1 auf die Position des gleitenden Vor zeichens siehe dazu auch Beispiel 3 Der Befehl EDMK ver ndert bei bestimmten Datenkonstellationen das Mehrzweckre gister 1 obwohl dieses nicht im Befehl angegeben wird U3119 J Z125 2 Dezimalbefehle ED EDMK Weil das Mehrzweckregister 1 bei EDMK nicht in jedem Falle ge ndert wird und auch dann wenn es ge ndert wird nicht vollst ndig ersetzt wird empfiehlt es sich dieses Register 1 in jedem Falle nicht nur im o a Fall vor EDMK auf einen sinnvol len Wert zu setzen Beispiele Name Beispiell MASKE Beispiel2 DFIELD2 SFIELD Beispiel3 x READY Operande
30. BASR Befehls dessen um 2 erh hte Befehlsadresse und bei direkter Ausf hrung eines BAS Befehls dessen um 4 erh hte Befehlsadresse wenn allerdings ein BASR oder BAS Befehl mittels des Befehls EX ausgef hrt wird ist die Befehlsfolgeadresse die um 4 erh hte Adresse des EX Die Befehle BASR und BAS leisten das Gleiche wie die Befehle BALR und BAL BASR und BAS erzeugen jedoch reine Befehlsfolgeadressen auch im 24 Bit Adres sierungsmodus und besetzen das h chstwertige Byte im Mehrzweckregister R1 nicht mit adressfremden Informationen z B ILC die zu Problemen im 31 Bit Adressie rungsmodus f hren k nnen Allerdings sind die Befehle BASR und BAS nicht im Befehlsvorrat lterer Zentraleinheiten verf gbar Man beachte folgenden Unterschied zwischen BASR und BAS bei BASR wird die Sprungadresse durch den Inhalt bei BAS jedoch durch die Adresse des zweiten Operanden bestimmt 37 BAS BASR 38 Allgemeine Befehle Beispiel Zum Uhnterprogrammsprung aus einem Programmteil A in einen Programmteil B die beide im selben Adressierungsmodus ablaufen 24 Bit oder 31 Bit aber in verschiede nen bersetzungseinheiten assembliert sind kann der Befehl BASR so eingesetzt wer den A gt B A 31 B 31 15 V B 14 15 1 14 U3119 J Z125 2 Allgemeine Befehle BASSM Branch and Save and Set Mode Funktion Der Befehl BASSM speichert den momentanen Adressierungsmodus und die Befehlsfol geadresse in ein Mehrzweckregister set
31. Bit lan gen Adresse und das eine Bit links von einer 31 Bit langen Adresse mit 0 besetzt Die Bitstellen einer 24 Bit langen Adresse werden von 8 bis 31 die einer 31 Bit langen Adresse von 1 bis 31 numeriert Adre wort EEE DER 24 Bit lange Adresse 0 8 31 D 31 Bit lange Adresse 0 1 31 Adressierungsmodi Die L nge von Adressen und damit die Gr e des Adre raums den ein Anwenderpro gramm ben tzen kann wird durch den Adressierungsmodus festgelegt Es gibt zwei Adressierungsmodi den 24 Bit Adressierungsmodus und den 31 Bit Adressierungsmo dus Zu jedem Zeitpunkt befindet sich eine Zentraleinheit in einem dieser Modi und ver wendet oder erzeugt dementsprechend entweder 24 Bit lange oder 31 Bit lange Adres sen Als Folge davon verhalten sich diejenigen Assemblerbefehle die Adressen explizit bereit stellen wie z B der Befehl LA unterschiedlich je nach dem Adressierungsmo dus in dem sie ausgef hrt werden Bei solchen Befehlen sind in diesem Handbuch diese Unterschiede im Einzelnen dargestellt Ab BS2000 V11 0 wird ein neuer Adressierungsmodus zur Erweiterung des virtuellen Adre raums unterst tzt der AR Modus access register mode siehe Kapitel 6 AR Modus Durch eine neue Hardware ESA Anlagen wird die M glichkeit geschaffen mehr virtuelle Adre r ume f r Daten zu nutzen Auf diesen sogenannten ESA Anlagen Enterprise System Architecture werden neben dem bisherigen Adre raum der jetzt Programmraum
32. Das Zwi schenergebnis besteht beim kurzen Format aus 7 beim langen Format aus 15 und beim erweiterten Format aus 29 Sedezimalstellen Wenn ein berlauf aufgetreten ist wird das Zwischenergebnis um eine Sedezimalstelle nach rechts geschoben dann in die links freigewordene Sedezimalstelle eine 1 einge setzt und die Charakteristik um 1 erh ht Signifikanz tritt ein wenn das Zwischenergebnis einschlie lich Schutzziffer 0 ist Wenn in diesem Fall das Bit f r Signifikanz in der Programmaske 1 ist BS2000 Standard erfolgt eine Programmunterbrechung andernfalls erfolgt keine Programmunterbrechung und als Endergebnis wird eine echte Null erzeugt Wenn das Zwischenergebnis einschlie lich Schutzziffer ungleich 0 ist wird es normali siert d h solange nach links geschoben bis die h chstwertige Sedezimalstelle von 046 verschieden ist Rechts freiwerdende Sedezimalstellen werden mit O gef llt Die Charak teristik wird um die Anzahl der geschobenen Sedezimalstellen vermindert Zuletzt wird das normalisierte Zwischenergebnis auf 6 bzw 14 bzw 28 Sedezimalstellen gek rzt und zusammen mit der zuvor ermittelten Charakteristik zum Endergebnis ge macht Beim erweiterten Format wird im unteren Teil der Gleitpunkt Summe eine Charak teristik erzeugt die um 14 kleiner ist als die des oberen Teils und das Vorzeichen des unteren Teils wird gleich dem des oberen Teils gesetzt Exponenten berlauf tritt ein wenn die Charakteristik des Ender
33. Differenz lt 0 Die normalisierende Subtraktion normalisiert die Differenz aber nicht die Eingangso peranden Durch das BS2000 werden die Bit f r Exponenten Unterlauf und Signifikanz in der Programmaske mit 1 vorbesetzt so da in den oben genannten F llen eine Program munterbrechung eintritt Mit dem Befehl SPM Setzen Programmmaske kann ein Anwenderprogramm die Vorbesetzung ndern Bei SE und SER werden die rechten 32 Bit der verwendeten Gleitpunktregister igno riert und bleiben unver ndert R2 darf R1 sein das Ergebnis ist dann eine echte Null U3119 J Z125 2 Gleitpunktbefehle SD SDR SE SER SXR Beispiel Name Operanden OF FLNO1 xX 46100000 FLNO2 x 40200000 LNOl LNO2 Das Endergebnis im Gleitpunktregister lautet X 45FFFFFE und die Anzeige ist auf 2 Plus gesetzt Nach dem Charakteristik Abgleich hatte der zweite Operand den Wert X 46000000 und die Schutzziffer 2 Das Zwischenergebnis betrug X 460FFFFFE U3119 J Z125 2 255 STD STE 256 Gleitpunktbefehle Store Funktion Die Befehle STE und STD speichern die Gleitpunktzahl im Gleitpunktregister R1 in ein Hauptspeicherfeld Assemblerformate kurze Operanden STE R1 D2 X2 B2 R1 0 2 4 oder 6 und lange Operanden STD R1 D2 X2 B2 R1 0 2 4 oder 6 und Maschinenformate 0 8 12 16 20 31 Beschreibung Die kurze bzw lange Gleitpunktzahl im Gleitpunktregist
34. Exponenten berlauf X 64 Ergebnis Charakteristik gt 127 Programmierhinweise R1 darf R2 sein Man beachte jedoch da bei LRER der rechte Teil des Gleitpunkt registers R1 bzw bei LRDR der Inhalt des Gleitpunktregisters R1 2 nach der Opera tion nicht mehr zur Interpretation des Ergebnisses herangezogen werden darf siehe Beispiel Der Befehl LRER l t die rechten 32 Bit des Gleitpunkregisters R1 unver ndert Beispiel XL8 C6FFFFFF8S9YOABCDE ooo Sun I XL8 C7100000890ABCDE ergibt Anzeige O Equal Die obigen Befehle setzen die Anzeige auf O Equal Der Eingangsoperand hat den Wert 167 1 0 5 das Ergebnis hat den Wert 167 Dieses Ergebnis ist eine kurze Gleitpunkt zahl Da der rechte Teil des Ergebnisregisters 0 unver ndert bleibt ist die hier nur zur Demonstration gezeigte Interpretation des Ergebnisses als lange Gleitpunktzahl arith metisch nicht korrekt U3119 J Z125 2 245 LTDR LTER 246 Gleitpunktbefehle Load and Test Funktion Die Befehle LTER und LTDR laden die Gleitpunktzahl im Gleitpunktregister R2 in das Gleitpunktregister R1 und setzen die Anzeige gem dem Wert in R1 Assemblerformate kurze Operanden LTER R1 R2 R1 R2 0 2 4 oder 6 A lange Operanden LTDR R1 R2 R1 R2 0 2 4 oder 6 Maschinenformate LTER RR X532 2 Kurze Operanden z el LTDR RR 2 Lange Operanden 0 8 12 15 Beschreibung Die kurz
35. Inhalt Beschreibung des Sprachumfangs des Assemblers ASSEMBH im BS2000 Struktur der Assemblersprache Assembleranweisungen Struktur und Elemente sowie Instruktionen der Makrosprache Strukturierte Programmierung mit ASSEMBH vordefinierte Makros f r die strukturierte Programmierung ILCS Anschlu f r die strukturierte Programmierung 2 Einf hrung in die XS Programmierung f r ASSEMBLER Programmierer BS2000 Benutzerhandbuch Zielgruppe Programmierer System Programmierer Inhalt Die Adressierungsmodi der ab BS2000 V9 0 unterst tzten Zentraleinheiten und wie sie sich auf die ASSEMBLER Befehle auswirken Programmierhinweise f r ASSEMBLER Programmierer die den erweiterten Adre raum von XS Anlagen nutzen oder ihre Programme adressierungsmo dus unabh ngig und portabel gestalten wollen Einsatz TU TPR Programme U3119 J Z125 2 301 Literatur 302 3 4 BS2000 OSD BC V1 0 Makroaufrufe an den Ablaufteil Benutzerhandbuch Zielgruppe Das Handbuch wendet sich an alle BS2000 OSD Assembler Programmierer Inhalt Das Handbuch enth lt eine Zusammenstellung der Makroaufrufe an den Ablaufteil die ausf hrliche Beschreibung jedes Makroaufrufs mit Hinweisen und Beispielen einschlie lich der Jobvariablen Makros sowie einen ausf hrli chen allgemeinen Lernteil BS2000 0SD BC V1 0 Systemanwendung Taschenbuch Zielgruppe Erfahrene BS2000 Anwender Inhalt Enth lt in Fo
36. MVZ bertr gt die linken Halbbyte eines Hauptspeicherbereichs in die linken Halbbyte eines anderen Hauptspeicherbereichs Die Anzeige wird nicht ver ndert Assemblerformat r L B1 D2 B2 1sL lt 256 Maschinenformat 0 8 20 32 36 47 Beschreibung Die linken Halbbyte des mit D2 B2 adressierten Zeichenfelds der L nge L Byte d h die Zonenteile werden von links nach rechts in die linken Halbbyte des mit D1 B1 adressierten Zeichenfelds bertragen die rechten Halbbyte des ersten Operanden blei ben unver ndert Anzeige Nicht ver ndert Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Lese Schreibzugriff auf Operandl oder Lesezugriff auf Operand2 unm glich U3119 J Z125 2 119 MVZ Allgemeine Befehle Programmierhinweise Die Operanden d rfen sich berlappen Man kann sich die berlappungsm glichkeit des MVZ zunutze machen um die Zonenteile eines Felds zu l schen d h mit einem konstanten Wert zu f llen Dazu speichert man diesen Wert in das Byte 0 des ersten Operanden z B mit NI und Ol und f hrt danach einen MVZ aus dessen erste Operanden Adresse D1 B1 1 und dessen zweite Operanden Adresse D1 B1 ist Dadurch wird der linke Teil des Byte 0 ber den ersten Operanden ausgebreitet siehe Beispiel Beispiel NI DFIELD X OF Einsetzen F ll Zone OI DFIELD X CO in Byte 0 DFIELD 1 L DFIELD 1 DFIELD alle linken Halbbyte werde
37. Mantisse Die Differenz bildet ein Zwischenergebnis Das Zwischenergebnis besteht beim kurzen Format aus 7 beim langen Format aus 15 und beim erweiterten Format aus 29 Sedezi malstellen Wenn ein berlauf aufgetreten ist wird das Zwischenergebnis um eine Sedezimalstelle nach rechts verschoben dann in die links freigewordene Sedezimalstelle eine 1 einge setzt und die Charakteristik um 1 erh ht Signifikanz tritt ein wenn das Zwischenergebnis einschlie lich Schutzziffer 0 ist Wenn in diesem Fall das Bit f r Signifikanz in der Programmaske 1 ist BS2000 Standard erfolgt eine Programmunterbrechung andernfalls erfolgt keine Programmunterbrechung und als Endergebnis wird eine echte Null erzeugt Wenn das Zwischenergebnis einschlie lich Schutzziffer O ist wird es normalisiert d h so lange nach links geschoben bis die h chstwertige Sedezimalstelle von 0 verschie den ist Rechts freiwerdende Sedezimalstellen werden mit 0 gef llt Die Charakteristik wird um die Anzahl der geschobenen Sedezimalstellen vermindert Zuletzt wird das normalisierte Zwischenergebnis auf 6 bzw 14 bzw 28 Sedezimalstellen gek rzt und zusammen mit der zuvor ermittelten Charakteristik zum Endergebnis ge macht Beim erweiterten Format wird im unteren Teil der Gleitpunkt Differenz eine Cha rakteristik erzeugt die um 14 kleiner ist als die des oberen Teils und das Vorzeichen des unteren Teils wird gleich dem des oberen Teils gesetzt Exponenten ber
38. Maximalwert 32 f r eine Rechts Verschiebung reicht aus um die l ngstm gliche Dezimalzahl zu nullen 31 w rde auch gen gen Auch bei Linksverschiebung mu im Assemblerformat ein dritter Operand I3 angege ben und lt 9 sein obwohl er bei der Befehlsausf hrung nicht ber cksichtigt wird Die Multiplikation einer gepackten Dezimalzahl GZAHL mit einer variablen Zehnerpo tenz 10 K wird erreicht indem man die Variable x in das Mehrzweckregister B1 und die Konstante k in das D1 Feld eines SRP einsetzt also z B schreibt Name Operation Operanden LH 6 H x SRP GZAHL k 6 O Das Besondere daran ist da dies auch funktioniert wenn x k negativ ist also durch 10 5 dividiert werden soll 208 U3119 J Z125 2 Dezimalbefehle U3119 J Z125 2 Beispiele Die folgenden Beispiele von SRP Befehlen ergeben oO U U U FIELD vorher 12 995 L2 994 1L2 995 12 L 12717 parel ELD 64 1 5 ELD 64 1 5 ELD 64 1 5 ELD 3 0 ELD 1 0 ELD 64 1 9 SRP 209 ZAP 210 Dezimalbefehle Zero and Add Funktion Der Befehl ZAP bertr gt eine gepackte Dezimalzahl in den angegebenen Hauptspei cherbereich Der Befehl entspricht dem Befehl AP wenn dessen erster Operand 0 ist Die Anzeige wird gem dem Wert der bertragenen Dezimalzahl gesetzt Assemblerformat Maschinenformat 0 8 12 16 36 47 20 32 Beschreibung
39. Operanden Der erste Operand und die Differenz haben die L nge L1 Byte der zweite Operand hat die L nge L2 Byte 1 lt L1 L2 lt 16 Beide Operanden werden auf korrektes gepacktes Format gepr ft im Fehlerfalle erfolgt eine Programmunterbrechung wegen Datenfehlers Ein Dezimal berlauf tritt auf wenn das Resultat mehr signifikante Dezimalstellen besitzt als in das Feld des ersten Operanden passen Der Befehl wird normal beendet jedoch werden nur die 2L1 1 niedrigstwertigen Dezimalstellen der Differenz gespeichert und die h chstwertigen Dezimalstellen gehen verloren die Anzeige wird dann auf 3 Overflow gesetzt Wenn das Bit f r Dezimal berlauf in der Programmaske auf 1 gesetzt ist BS2000 Standard erfolgt au erdem danach eine Programmunterbrechung Eine echte Differenz 0 hat stets ein positives Vorzeichen Oo jedoch kann eine Diffe renz 0 die durch Dezimal berlauf entstanden ist auch ein negatives Vorzeichen haben D46 U3119 J Z125 2 203 SP Dezimalbefehle Anzeige O Zero Die Differenz ist 0 sie hat das Vorzeichen C46 1 Minus Die Differenz ist lt 0 sie hat das Vorzeichen D46 2 Plus Die Differenz ist gt 0 sie hat das Vorzeichen C46 3 Overflow Die Differenz hat mehr signifikante Dezimalstellen als in das Feld des ersten Operanden passen Programmunterbrechungen Art Adre umsetzungsfehler Datenfehler Dezimal berlauf Gewicht Ursachen Lese Schreibzugriff auf Operandl oder Lesezugriff
40. R1 nicht nach rechts ausgebreitet stattdessen werden links freiwerdende Bitstellen immer mit O aufgef llt 155 ST STC STH Allgemeine Befehle Store Funktion Der Befehl ST bertr gt den Inhalt eines Mehrzweckregisters in ein Hauptspeicher Wort Der Befehl STH bertr gt die Byte 2 und 3 eines Mehrzweckregisters in ein Hauptspei cher Halbwort Der Befehl STC bertr gt das Byte 3 eines Mehrzweckregisters in ein Hauptspeicher Byte Die Anzeige wird nicht ver ndert Assemblerformate ST R1 D2 X2 B2 D2 X2 B2 Wortgrenze STH R1 D2 X2 B2 D2 X2 B2 Halbwortgrenze STG R1 D2 X2 B2 Maschinenformate 16 20 Ep 8 12 2 D2 D2 pgg Beschreibung ST Der Inhalt des Mehrzweckregisters R1 wird in das mit D2 X2 B2 adressierte Wort gespeichert STH Die Bitstellen 16 bis 31 des Mehrzweckregisters R1 werden in das durch D2 X2 B2 adressierte Halbwort gespeichert STC Die Bitstellen 24 bis 31 des Mehrzweckregisters R1 werden in das mit D2 X2 B2 adressierte Byte gespeichert 156 U3119 J Z125 2 Allgemeine Befehle ST STC STH Befehl Operandl Operand2 ST Byte 0 bis 3 von Register R1 mit D2 X2 B2 adressiertes Wort STH Byte 2 und 3 von Register R1 mit D2 X2 B2 adressiertes Halbwort STC Byte 3 von Register R1 mit D2 X2 B2 adressiertes Byte Anzeige Nicht ver ndert Programmunterbrechungen Art Ursachen Adre umsetzungsfehler x 4a8 Schreibzugriff auf Operand2
41. R3 geladen Befehl Operandl Operand2 LAM Inhalt von Zugriffsregister Mit D2 B2 adressierte Wortfolge R1 bis R3 Wortanzahl R3 R1 1 wenn R3 gt R1 R3 R1 17 wenn R3 lt R1 Anzeige Nicht ver ndert U3119 J Z125 2 ESA Befehle LAM Programmunterbrechungen Art Ursachen Adre umsetzungsfehler x 4a8 Lesezugriff auf Operand2 unm glich Adre fehler x 5C D2 B2 keine Wortgrenze U3119 J Z125 2 269 SAC 270 ESA Befehle Set Address Space Control Funktion Der Befehl SAC schaltet den AR Modus access register mode ein oder aus Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen Maschinenformat 0 16 20 ZU Beschreibung Mit den Bitstellen 20 bis 23 des D2 Feldes oder des Registers B2 k nnen Sie die ad dress space control bit im PSW Bit 16 und Bit 17 setzen und damit den AR Modus access register mode ein oder ausschalten Direkt im D2 Feld Sie setzen die Bitstellen 20 bis 23 wie in folgender Tabelle dargestellt Die Bitstellen 20 und 21 m ssen 0 sein Die Bitstellen 24 bis 31 werden ignoriert ber das B2 Feld bestimmen Sie ein Mehrzweckregister MZR Sie laden das Register mit den Werten Bit 20 bis 23 wie in folgender Tabelle dar gestellt Die Bitstellen 20 und 21 m ssen 0 sein Die Bitstellen 0 bis 19 und 24 bis 31 des Registers werden ignoriert D2 Feld MZR Bitstellen PSW Bit 20 21 22 23 16 und 17 0000 primary space mode 00 00
42. R4 R5 hat also genau die in R6 R7 gesetzten Bits ohne das in R4 R5 gesetzte Bit gesetzt Das Ergebnis der Verkn pfung wird gesch tzt mittels des CDS Befehls in den Bitvektor eingetragen Der Fehler liegt darin da der Vergleichsinhalt R6 R7 und der Basisinhalt f r die Modifi kation R8 R9 in zwei Schritten aus dem Speicher geholt wird Findet an der durch gekennzeichneten Stelle eine Programmunterbrechung statt in der das Doppelwort SPERRE ver ndert wird oder es wird an dieser Stelle durch einen anderen Prozessor ver ndert dann wird diese nderung wieder r ckg ngig gemacht Ein gerade von einem anderen Programm Proze Task freigegebenes Element wird als belegt gekenn zeichnet oder noch schlimmer ein gerade von einem anderen Programm belegtes Element wird ungerechtfertigt freigegeben Auch ein Vertauschen der beiden Befehle vor und nach der mit gt gekennzeichneten Stelle w rde ein Fehlverhalten nur unwahr scheinlicher machen aber nicht ausschlie en 294 U3119 J Z125 2 Gemeinsam benutzte Daten in Multiprozessor Anlagen Eine L sung mu auf den zweiten Zugriff auf SPERRE verzichten und R8 R9 wie oben im Beispiel 3 am Anfang der Schleife aus R6 R7 initialisieren LM R6 R7 SPERRE CYCLE LR R8 R6 LR R9 R7 R R8 R4 R R9 R5 Mit diesem Code ist die erste oben mit gekennzeichnete Codefolge zu ersetzen die zweite mit gekennzeichnete Codefolge kann dann entfallen U3119 J Z125 2
43. Register R1 Register R2 L Register R1 mit D2 xX2 B2 adressiertes Wort Anzeige Nicht ver ndert U3119 J Z125 2 87 L LR 88 Programmunterbrechungen Art Adre umsetzungsfehler Adre fehler Gewicht x 4a8 x 5C L L Ursachen Allgemeine Befehle Lesezugriff auf Operand2 unm glich D2 X2 B2 keine Wortgrenze U3119 J Z125 2 Allgemeine Befehle LA Load Address Funktion Der Befehl LA l dt ein Mehrzweckregister mit einer Adresse Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen Maschinenformat 0 Beschreibung Die Adresse D2 X2 B2 wird in das Mehrzweckregister R1 geladen Die Adresse wird logisch als Summe aus den Adressen in den Mehrzweckregistern X2 und B2 und dem Bin rwert des 12 Bit langen D2 Feldes berechnet wobei keine Vorzeichen ber cksich tigt werden und etwaiger bertrag ber die h chstwertige Bin rstelle ignoriert wird Wenn X2 0 ist wird der Inhalt des Registers X2 wenn B2 0 ist wird der Inhalt des Registers B2 nicht mitsummiert Im 24 Bit Adressierungsmodus werden vom Inhalt der Mehrzweckregister B2 und X2 nur die niedrigstwertigen 24 Bit zur Summenbildung ver wendet die Summe wird in die Bitstellen 8 bis 31 des Mehrzweckregisters R1 eingetra gen und die Bitstellen 0 bis 7 von R1 werden auf 0 gesetzt Im 31 Bit Adressierungsmodus werden von B2 und X2 nur die niedrigstwertigen 31 Bit zur Summenbildung verwe
44. Verzweigung nicht wenn das R2 Feld 0 ist In jedem Fall bleibt der momentane Adressierungsmodus bestehen Die Sprungadresse wird ermittelt bevor das Mehrzweckregister R1 ver ndert wird Anzeige Nicht ver ndert Programmunterbrechungen Keine beim Befehl selbst Wenn allerdings die Zieladresse keine Halbwortadresse ist oder auf sie nicht zugegriffen werden kann erfolgt eine entsprechende Programmunterbrechung mit dem Gewicht 50 bzw 48 an der Zieladresse Programmierhinweise Zur R ckkehr aus einem mit BALR oder BAL aufgerufenen Unterprogramm sollte der Befehl BCR oder der Befehl BC verwendet werden die Verwendung des Befehls BSM f r diesen Zweck ist nicht m glich wenn das Unterprogramm mittels BAL geru fen wurde und der Aufruf im 24 Bit Adressierungsmodus erfolgt ist Die Befehlsfolgeadresse ist bei direkter Ausf hrung eines BALR Befehls dessen um 2 erh hte Befehlsadresse und bei direkter Ausf hrung eines BAL Befehls dessen um 4 erh hte Befehlsadresse wenn allerdings ein Befehl BALR oder BAL mittels des Befehls EX ausgef hrt wird ist die Befehlsfolgeadresse die um 4 erh hte Befehlsa dresse dieses EX 34 U3119 J Z125 2 Allgemeine Befehle BAL BALR U3119 J Z125 2 Man beachte da die Befehle BALR und BAL im 24 Bit Adressierungsmodus in das Mehrzweckregister R1 keine reinen 24 Bit Adressen erzeugen sondern das obere Byte mit adressfremden Informationen versorgen Dies macht diese Befeh
45. Z125 2 Allgemeine Befehle BC BCR Anzeige Nicht ver ndert Programmunterbrechungen Keine beim Befehl selbst Wenn allerdings tats chlich verzweigt wird und die Zieladresse keine Halbwortadresse ist oder auf sie nicht zugegriffen werden kann erfolgt eine entsprechende Programmun terbrechung mit dem Gewicht 5C bzw 48 an der Zieladresse Programmierhinweise U3119 J Z125 2 In der Maske M1 darf mehr als eine oder keine Bitstelle 1 gesetzt sein verzweigt wird bei jedem Anzeige Wert dessen entsprechendes Maskenbit 1 ist Demzufolge wird bei einer Maske M1 aus lauter Einsen in jedem Falle und bei einer Maske aus lauter Nullen in keinem Falle verzweigt Der Assembler 1 erleichtert erheblich das Schreiben von BCR und BC Befehlen f r beide Befehle und f r alle sinnvollen Bitkombinationen der Maske verf gt er ber sog Erweiterte mnemotechnische Operationscodes die BC und BCR Befehle einschlie lich Maske erzeugen Zum Beispiel erzeugt der Assembler 1 aus dem mnemotechnischen Operationscode BE einen BC Befehl mit der Maske B 1000 8 der nach aritnmetischen Vergleichen geschrieben werden kann wenn beim Anzeigewert 0 d h bei Gleichheit verzweigt werden soll Dadurch bleibt dem Autor des Programms das Memorieren obiger Tabelle erspart und wird dem Leser des Pro gramms der Steuerflu verst ndlich Siehe dazu die vollst ndige Tabelle unter Erwei terte mnemotechnische Operationscode im Anhang Man b
46. als Akkumulatoren in arithmetischen Operationen Wenn sie als Akkumulatoren verwendet werden werden sie in Befehlen durch die explizite Angabe ihrer Registernummer in einem R Feld bestimmt allerdings bestimmen einige Befehle z B der Befehl TRT die von ihnen verwendeten Mehrzweck register implizit Manche Befehle verwenden als Operanden die Inhalte zweier aufeinanderfolgender Mehr zweckregister Diese werden dann ein Mehrzweckregister Paar genannt Das erste der beiden Register mit dem h herwertigen Teil des Operanden mu dann stets ein geradzahliges Mehrzweckregister sein und das zweite Register mit dem niederwertigen Teil des Operanden ist dann das nachfolgende ungeradzahlige Mehrzweckregister Im R Feld f r solche Operanden wird das geradzahlige Register angegeben Die Mehrzweckregister k nnen auch zur Basis oder Index Adressierung von Operanden verwendet werden In diesen F llen bestimmt das B bzw das X Feld einer Operandena dresse das verwendete Register Ein Wert 0 in einem B oder X Feld bestimmt aller dings nicht das Mehrzweckregister 0 als Basis oder Indexregister sondern legt fest da keine Basis bzw Index Adressierung bei der Adre berechnung der effektiven Ope randenadresse erfolgen soll Deshalb kann das Mehrzweckregister 0 nicht als Basis oder Indexregister verwendet werden Zugriffsregister Die ESA Anlagen verf gen ber 16 Zugriffsregister AR access register numeriert von 0 bis 15 Jedes Registe
47. auf Operand2 unm glich Inkorrektes Format eines Operanden Differenz zu gro f r den ersten Operanden Programmierhinweise 204 Beide Operanden werden als Ganzzahlen verarbeitet Die Verarbeitung der Operanden erfolgt von rechts nach links Die beiden Operanden d rfen sich berlappen aber dann m ssen die Adressen ihrer niedrigstwertigen Byte gleich sein D1 B1 L1 1 D2 B2 L2 1 andernfalls erfolgt eine Programmunterbrechung wegen Datenfehlers Der zweite Operand wird nur ver ndert wenn er sich mit dem ersten Operanden berlappt Bei einem Dezimal berlauf hat das Resultat das Vorzeichen der korrekten Differenz deshalb kann bei Dezimal berlauf das Resultat 0 ein negatives Vorzeichen haben U3119 J Z125 2 Dezimalbefehle Beispiele Die folgenden Beispiele von SP Befehlen ergeben folgende Ergebnisse Beispiel Befehl DFIELD nachher oO FIELD vorher PL1 2 PL1 2 PL1 2 PLI 27 Man beachte da der zweite Operand durchaus l nger sein darf als der erste Operand erste drei Beispiele Dezimal U berlauf tritt erst auf wenn das Resultat des SP Befehls zu lang ist um im ersten Operanden gespeichert werden zu k nnen U3119 J Z125 2 LD P 10 LD PL16 2 LD P 13 LD DFIELD SP 205 SRP 206 Dezimalbefehle Shift and Round Decimal Funktion Der Befehl SRP verschiebt eine gepackte Dezimalzahl um eine angegebene Anzahl v
48. bei jedweder Rechtsverschiebung wieder die Zahl 1 oder es ergibt die Zahl 5 wenn sie um 2 Bin rstellen nach rechts geschoben also durch 4 dividiert wird die Zahl 2 und nicht 1 Siehe dazu die Beispiele Beispiele Die folgenden Beispielbefehle ergeben In den Beispielen ist jeweils die Rechtsverschiebung einer positiven Festpunktzahl der Rechtsverschiebung des negativen Pendants gegen bergestellt um die vielleicht unge wohnten Resultate zu verdeutlichen U3119 J Z125 2 151 SRDL 152 Allgemeine Befehle Shift Right Double Logical Funktion Der Befehl SRDL verschiebt eine 64 Bit lange Bin rzahl in einem Mehrzweckregister Paar logisch um eine angegebene Anzahl von Bin rstellen nach rechts Die Anzeige wird nicht ver ndert Assemblerformate SRDL R1 D2 B2 R1 geradzahlig oder auch SRDL Rl lt anzahl gt R1 geradzahlig Maschinenformat 0 8 12 16 20 31 Beschreibung Das R1 Feld des Befehls bestimmt ein Paar von Mehrzweckregistern bestehend aus den Registern Ri und R1 1 Ri mu geradzahlig sein andernfalls erfolgt eine Program munterbrechung wegen Adre fehlers Die Bitstellen 12 bis 15 des Befehls werden ignoriert Die durch D2 B2 bestimmte Adresse wird nicht als Datenadresse verwendet stattdes sen bilden die rechten 6 Bit dieser Adresse die Anzahl der Bin rstellen um die die Bin rzahl nach rechts verschoben wird Diese Anzahl liegt im Bereich zwischen 0 und 63 Die h he
49. der beiden Operanden einer normalisierenden Addition ndert in keinem Falle das Resultat Die normalisierende Addition normalisiert die Summe aber nicht die Summanden Durch das BS2000 werden die Bit f r Exponenten Unterlauf und Signifikanz in der Programmaske mit 1 vorbesetzt so da in den oben genannten F llen eine Program munterbrechung eintritt Mit dem Befehl SPM Setzen Programmaske kann ein Anwenderprogramm die Vorbesetzung ndern Bei AE und AER werden die rechten 32 Bit der verwendeten Gleitpunktregister igno riert bzw bleiben unver ndert R2 darf R1 sein U3119 J Z125 2 223 AD ADR AE AER AXR Gleitpunktbefehle 224 Beispiel 0D FLNO1 x 3F11111111111111 FLNO2 X CO01111111111111 LNOl LNO2 Das Endergebnis im Gleitpunktregister 2 lautet X 3210000000000000 zusammen mit der Anzeige 2 Plus Nach dem Charakteristik Abgleich hatte der erste Operand den Wert X4001111111111111 und die Schutzziffer 1 Das Zwischenergebnis lautete X 40000000000000001 U3119 J Z125 2 Gleitpunktbefehle AU AUR AW AWR Add Unnormalized Funktion Die Befehle der AUR AU AWR und AW addieren zwei Gleitpunktzahlen Die Summe ersetzt den ersten Operanden sie wird nicht normalisiert Die Anzeige wird gem dem Wert der Summe gesetzt Assemblerformate kurze Summanden kurze Summe AUR R1 R2 R1 R2 0 2 4 oder 6 AU R1 D2 X2 B2 R1 0 2 4 oder 6 und lange Sum
50. die 4 m glichen Bedingungs Konstellationen die rechten 2 Spal ten zeigen das jeweilige Ergebniszeichen im Empfangsfeld und die Stellung des Signifi kanz Indikators danach Wirkung der Maskenzeichen von ED und EDMK Masken Signifikanz Sendefeld folgt Plus Empfangs Signifikanz zeichen Indikator Ziffer Vorzeichen feld Indikator vorher Zeichen nachher unerheblich F llzeichen ziffern ARCHE nein SF Ziffer selektor ja SF Ziffer xX 20 j u nein SF Ziffer j ja SF Ziffer F llzeichen Signifi F llzeichen kanz uns SF Ziffer starter Ba SF zZiffer xX 21 j bauda SF Ziffer j SF Ziffer Feld trenner unerheblich unerheblich unerheblich 22 Text unerheblich unerheblich F ll zeichen zeichen jedes j unerheblich unerheblich Text andere zeichen Anzeige 0 Zero Alle verarbeiteten Ziffern der zuletzt aufbereiteten Dezimalzahl waren 0 oder in der Maske f r die letzte aufbereitete Dezimalzahl war weder ein Signifikanzstarter noch ein Ziffernselektor aufgetreten oder das letzte Zei chen der Maske war ein Feldtrenner 1 Minus Die zuletzt aufbereitete Dezimalzahl war ungleich 0 und der Signifikanz Indikator befand sich zuletzt in der Stellung ein 2 Plus Die zuletzt aufbereitete Dezimalzahl war ungleich 0 und der Signifikanz Indikator befand sich zuletzt in der Stellung aus 3 Nicht verwendet U3119 J Z125 2 197 ED EDMK 198 Dezimalbefehle Programmunterbrechungen A
51. die Operanden vor der eigentlichen Multiplikation bzw Division normalisiert bei den anderen Befehlen die eine Normalisierung durchf hren findet diese erst bei der Herstellung des Endergebnis ses statt Wenn bei der Bildung des Zwischenergebnisses einer Addition Subtraktion oder Run dung die Mantisse berl uft wird sie um eine Sedezimalstelle nach rechts geschoben in die freigewordene Sedezimalstelle wird eine Eins 1 eingesetzt und die Charakteri stik wird um Eins erh ht Diese Schritte erfolgen auch bei den Befehlen die im brigen keine Normalisierung durchf hren Gleitpunkt Formate Es gibt drei Formate f r Gleitpunktzahlen das kurze das lange und das erweiterte Format Das kurze Format bezeichnet 32 Bit d h ein Wort lange das lange Format bezeichnet 64 Bit ein Doppelwort lange und das erweiterte Format bezeichnet 128 Bit zwei Doppelworte lange Gleitpunktzahlen U3119 J Z125 2 215 berblick 216 Gleitpunktbefehle Gleitpunktzahlen des kurzen oder langen Formats k nnen sowohl im Hauptspeicher als auch in Gleitpunktregistern adressiert werden Gleitpunktzahlen des erweiterten Formats jedoch nur in Gleitpunktregistern genauer in Gleitpunktregister Paaren Kurzes Format V Charakteristik Mantisse aus 6 Sedezimalstellen 1 8 31 3 Langes Format V Charakteristik Mantisse aus 14 Sedezimalstellen 1 8 63 ale Erweitertes Format Oberer Teil V Charakteristik h chstwertige
52. die gleiche Weise l schen wie das mit dem Befehl MVC m glich und blich ist n mlich durch Ausbrei ten seines Byte 0 Wenn n mlich als Sendefeld die um Eins erh hte Adresse des Emfangsfelds verwendet wird erfolgt bei MVCL ein Befehlsabbruch wegen inkorrek ter berlappung Die Pr fung auf inkorrekte berlappung erfolgt zu Befehlsbeginn allein aufgrund der Daten in R1 und R2 Bei inkorrekter berlappung wird der Befehl abgebrochen wobei das Empfangsfeld unver ndert ist Es finden dann auch keine weiteren Pr fun gen statt so da z B nicht entdeckt wird ob alle Adressen von Sende und Emp fangsfeld auch vom Betriebssytem bereitgestellt sind Eine andere Interpretation der Bedingungen f r korrekte berlappung ist folgende Das Empfangsfeld mu so zum Sendefeld liegen da kein Byte zweimal bertragen werden mu 111 MVCL 112 Allgemeine Befehle Wenn die L nge des Sendefelds 0 oder 1 betr gt ist inkorrekte berlappung nicht m glich In Multiprozessor Anwendungen mu ggf folgendes beachtet werden Da der Befehl hardwareseitig w hrend seines Ablaufs unterbrochen werden kann ist es m glich da das Empfangsfeld noch nicht vollst ndig gef llt oder gel scht ist wenn eine andere Zentraleinheit schon auf es zugreift Das Anwenderprogramm mu von sich aus sicherstellen da alle Adressen beider Operanden f r das Programm ausschlie lich in seinem eigenen Adre raum liegen Bei ei
53. ein Mehrzweckregister mit einer Adresse und das korrespondie rende Zugriffsregister mit einem Wert Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen Maschinenformat 0 20 31 Beschreibung Die Adresse D2 X2 B2 wird in das Mehrzweckregister R1 geladen Die Adresse wird logisch als Summe aus den Adressen in den Mehrzweckregistern X2 und B2 und dem Bin rwert des 12 Bit langen D2 Feldes berechnet wobei keine Vorzeichen ber cksich tigt werden und etwaiger bertrag ber die h chstwertige Bin rstelle ignoriert wird Wenn X2 0 ist wird der Inhalt des Registers X2 wenn B2 0 ist wird der Inhalt des Registers B2 nicht mitsummiert Im 24 Bit Adressierungsmodus werden vom Inhalt der Mehrzweckregister B2 und X2 nur die niedrigstwertigen 24 Bit zur Summenbildung verwendet die Summe wird in die Bit stellen 8 bis 31 des Mehrzweckregisters R1 eingetragen und die Bitstellen 0 bis 7 von R1 werden auf 0 gesetzt Im 31 Bit Adressierungsmodus werden von B2 und X2 nur die niedrigstwertigen 31 Bit zur Summenbildung verwendet die Summe wird in die Bitstellen 1 bis 31 des Mehr zweckregisters R1 eingetragen und das Bit 0 auf 0 gesetzt U3119 J Z125 2 ESA Befehle LAE Das korrespondierende Zugriffsregister R1 wird mit einem Wert geladen der vom AR Modus dem momentanen Wert der Bitstellen 16 und 17 address space control bits des PSW abh ngt Wenn die Bitstellen 16 und 17 den bin ren Wert 01 haben d h d
54. eine Sedezimalziffer gt A enth lt Wenn ja wird nachdem ggf der Signifi kanz Indikator umgeschaltet wurde daf r gesorgt da beim n chsten Ziffernselektor oder Signifikanzstarter das nachfolgende linke Halbbyte gelesen wird andernfalls bleibt daf r das rechte Halbbyte verf gbar Signifikanz Indikator Der Signifikanz Indikator ist ein interner Ein Aus Schalter Wenn er sich in der Stellung ein befindet herrscht Signifikanz Ziffernselektoren und Signifikanzstarter in der Maske werden dann durch ihre gegen berliegenden Dezimalziffern ersetzt und Textzei chen bleiben unver ndert Wenn sich der Signifikanz Indikator in der Stellung aus befin det herrscht Nicht Signifikanz Ziffernselektoren Signifikanzstarter und Textzeichen werden dann durch das F llzeichen ersetzt U3119 J Z125 2 195 ED EDMK 196 Dezimalbefehle Der Signifikanz Indikator kennzeichnet auch durch seine Ein Aus Stellung ob die aufzu bereitende Dezimalzahl ein Minus oder Plus Vorzeichen enthalten hat und bestimmt damit u a die Anzeige der Befehle ED und EDMK Der Signifikanz Indikator wird in die Stellung aus geschaltet zu Beginn der Befehlsausf hrung oder wenn ein Feldtrenner auftritt oder wenn einer Dezimalziffer in einem linken Halbbyte des Sendefelds ein Plus Vorzei chen A46 C4g E46 Oder F46 im zugeh rigen rechten Halbbyte folgt Der Signifikanz Indikator wird in die Stellung ein geschaltet wenn er sich in der
55. erste Operand gleich ist dem zweiten Operanden Das Resultat des Befehls ist lt 0 ach Vergleichen bedeutet dies da der erste Operand kleiner ist als der zweite Operand Das Resultat des Befehls ist gt 0 ach Vergleichen bedeutet dies da der erste Operand gr er ist als der zweite Operand Bei der Befehlsausf hrung ist ein berlauf eingetreten Um dem Leser das Merken dieser Tabelle zu erleichtern ist in diesem Handbuch ber all wo ein Anzeigewert explizit auftritt eine mnemotechnische Erl uterung beigef gt die gleichzeitig einen Hinweis auf den ggf einzusetzenden Abfragebefehl gibt Wir sagen z B die Anzeige wird auf 2 High gesetzt und weisen damit darauf hin da zur Abfrage dieses Anzeigewerts 2 der Befehl Branch when High verwendet werden kann U3119 J Z125 2 Grundlagen 2 4 Programmunterbrechungen Programmunterbrechungen Wenn bei der Ausf hrung eines Befehls eine Ausnahmebedingung z B ein falsch be stimmter Operand oder eine unzul ssige Datenkonstellation entdeckt wird erfolgt eine Programmunterbrechung Wenn f r einen solchen Fall im Anwenderprogramm keine besonderen Vorkehrungen getroffen sind beendet das Betriebssystem BS2000 das Anwenderprogramm Wenn allerdings im Anwenderprogramm vor der ersten Program munterbrechung ein sog STXIT Proze definiert worden ist aktiviert das BS2000 bei jeder Programmunterbrechung diesen Proze so da
56. f llt diesen ggf rechts mit F llbytes auf Die beiden Bereiche k nnen bis zu 2 Byte d h bis zu 16 MB lang sein Die Anzeige wird gem dem L ngenunterschied der beiden Bereiche gesetzt Assemblerformat MVCL R1 R2 R1 und R2 geradzahlig Maschinenformat 0 8 12 5 Beschreibung Durch das R1 Feld des Befehls ist das Empfangsfeld durch das R2 Feld ist das Sende feld bestimmt R1 und R2 bestimmen jeweils ein Paar von Mehrzweckregistern beste hend aus den Registern R1 und R1 1 bzw aus den Registern R2 und R2 1 R1 und R2 m ssen beide geradzahlig sein andernfalls wird nicht bertragen und es erfolgt eine Programmunterbrechung wegen Adre fehlers Die Anfangsadressen des Empfangsfeldes und des Sendefeldes werden dem ersten geradzahligen Register R1 bzw R2 entnommen Ihre L ngen in Byte werden in den zweiten ungeradzahligen Registern R1 1 bzw R2 1 bestimmt Das Register R2 1 ent h lt au erdem die Codierung des F llbyte U3119 J Z125 2 109 MVCL 110 Allgemeine Befehle Die Adressendarstellung in R1 bzw R2 ist abh ngig vom Adressierungsmodus Es gilt folgende Zuordnung 24 Bit Adressierungsmodus 31 Bit Adressierungsmodus 0 1 11111 A Operandl A Operandl R1 1 LILLIA A A L nge Operandl II I II L nge Operandl 1 11111 A Operand2 A Operand2 R2 1 F llbyte L nge Operand2 F llbyte L nge Operand2 bedeutet wird ignoriert Die bertragung erfolgt byteweise von links
57. gepacktes Format gepr ft Im Fehlerfalle erfolgt eine Programmunterbrechung wegen Datenfehlers Anzeige Nicht ver ndert U3119 J Z125 2 Allgemeine Befehle CVB Programmunterbrechungen Art Ursachen Lesezugriff auf Operand2 unm glich D2 X2 B2 keine Doppelwortgrenze Die zu konvertierende Dezimalzahl ist gt 2147483647 oder lt 2147483648 Die zu konvertierende Zahl ist keine korrekt gepackte 8 Byte lange Dezimalzahl Adre umsetzungsfehler Adre fehler Divisionsfehler Datenfehler Programmierhinweise Wenn die Dezimalzahl negativ ist ist die Festpunktzahl durch ihr Zweierkomplement dargestellt Beispiele Die folgenden Beispiele liefern folgende Ergebnisse im Mehrzweckregister 3 FIELD Beispielbefe Register 3 nachher an Doppelwortgrenze PL8 255 Ex 299 X 000000FF PL8 255 722587 X FFFFFFO1 PL8 2147483647 F 2147483647 X IFFFFFFF PL8 2147483649 F 2147483647 X IFFFFFFF Bei allen Beispielen ist unterstellt da der Hauptspeicher Operand FIELD an einer Dop pelwortgrenze ausgerichtet ist Beim letzten Beispiel tritt eine Programmunterbrechung wegen Divisionsfehlers auf weil die zu konvertierende Dezimalzahl um Eins zu klein ist Im Register 3 stehen die nied rigstwertigen 32 Bit der korrekten Festpunktzahl die hier gleich sind der Festpunktzahl aus der gr tm glichen Dezimalzahl U3119 J Z125 2 73 CVD
58. ist gt 0 3 Overflow Dezimal berlauf Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler Datenfehler Lese Schreibzugriff auf Operandl unm glich 1 Inkorrektes Format des ersten Operanden 2 Rundungsziffer I3 nicht lt 9 Dezimal berlauf Verlust signifikanter Dezimalstellen U3119 J Z125 2 207 SRP Dezimalbefehle Programmierhinweise Die Verschiebe Information Richtung und Anzahl wird aus den 6 niedrigstwertigen Bit der Adresse D2 B2 gewonnen Diese 6 Bit bilden eine Bin rzahl b im Wertebe reich 0 lt b lt 63 Wenn b lt 31 ist wird nach links um b Dezimalstellen verschoben wenn 32 lt b lt 63 ist wird nach rechts um 64 b Dezimalstellen verschoben Es ergeben sich folgende Grenzwerte 6 niedrigstwertige Bin rzahl Verschiebe Verschiebe Bit von D2 B2 b Richtung Zahl 000000 keine Verschiebung 000001 links 1 Dezimalstelle 011111 links 31 Dezimalstellen 100000 rechts 32 Dezimalstellen 111111 rechts 1 Dezimalstelle Wenn B2 0 ist wird die Verschiebe Information allein aus den 6 niedrigstwertigen Bit des D2 Feldes gewonnen In diesem Fall braucht im Assemblerformat B2 nicht geschrieben zu werden Wenn gerundet wird wird bei positiven Zahlen nach oben und bei negativen Zahlen nach unten gerundet Die bliche kommerzielle Rundung wird durch die Rundungsziffer 5 erreicht Eine reine Rechts Verschiebung wird durch eine Rundungsziffer 0 erreicht Der
59. signifikante Dezimalstelle im Empfangsfeld indem er deren Adresse ins Mehrzweckregister 1 eintr gt Der mit D1 B1 adressierte Operand1 dient zwei Zwecken Er enth lt vor der Befehlsaus f hrung die Aufbereitungs Maske und nach der Befehlsausf hrung das aufbereitete Ergebnis Je nach diesem Zweck wird der Operand1 deshalb entweder Maske oder Empfangsfeld genannt In der Maske darf jedes beliebiges Zeichen stehen jedoch haben drei Zeichen eine spezielle Bedeutung als Steuerzeichen Es sind dies die Codie rungen X 20 Ziffernselektor X 21 Signifikanzstarter und X 22 Feldtrenner Der Operand2 D2 B2 ist das Sendefeld Es mu eine oder mehrere aufeinanderfol gende gepackte Dezimalzahlen enthalten U3119 J Z125 2 193 ED EDMK 194 Dezimalbefehle Wenn sich die beiden Operanden berlappen entstehen unvorhersehbare Ergebnisse Beide Operanden werden von links nach rechts verarbeitet Die Maske und das Emp fangsfeld werden byteweise das Sendefeld wird halbbyteweise verarbeitet Jedes Zeichen in der Maske wird w hrend der Befehlsausf hrung entweder durch eine entpackte Dezimalziffer des Sendefeldes oder durch das F llzeichen siehe unten ersetzt oder es bleibt unver ndert Welche dieser M glichkeiten tats chlich genutzt wird h ngt ab vom Maskenzeichen von der Schalterstellung des Signifikanz Indikators vom Wert der Dezimalziffer die dem Maskenzeichen im Sendefeld gegen berlie
60. unm glich Adre fehler x 5C STH D2 X2 B2 keine Halbwortgrenze ST D2 X2 B2 keine Wortgrenze U3119 J Z125 2 157 STCK 158 Allgemeine Befehle Store Clock Funktion Der Befehl STCK bertr gt den momentanen Wert der Tagesuhr in ein Hauptspeicher Doppelwort Assemblerformat STCK D2 B2 D2 B2 Doppelwortgrenze Maschinenformat 0 16 20 ZU Beschreibung Die Tagesuhr ist eine 64 Bit lange Bin rzahl ohne Vorzeichen in einem internen Register der Zentraleinheit Nach jeder Mikrosekunde d h alle 10 Sekunden wird diese Bin r zahl um den Wert 4096 212 logisch erh ht Durch den Befehl STCK wird der momen tane Wert dieser Bin rzahl in das mit D2 B2 adressierte Doppelwort des Hauptspei chers bertragen Manche Zentraleinheiten verf gen ber eine feinere Aufl sung der Tagesuhr Dies wird durch h ufigere Erh hung um einen kleineren Wert als 4096 angezeigt In jedem Falle wird aber alle 10 Sekunden die Bitstelle 51 der Tagesuhr um Eins erh ht Anzeige 0 Zero Uhrzeit relativ zum 1 1 1900 0 00 Uhr gesetzt 1 3 Nicht verwendet unter BS2000 Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Schreibzugriff auf Operand2 unm glich Adre fehler X 5C D2 B2 keine Doppelwortgrenze U3119 J Z125 2 Allgemeine Befehle STCK Programmierhinweise Die Tagesuhr eignet sich zur Ermittlung des absoluten Zeitabstandes zwischen zwei Ereignissen Zur Ermit
61. von der niedrigstwertigen Eins und lasse die nied rigstwertige Eins selbst sowie die rechts davon stehenden Bin rstellen sie sind alle 0 unver ndert Vorzeichengerechte und logische Arithmetik von Bin rzahlen Es werden zwei Arten der Arithmetik von Bin rzahlen unterschieden die vorzeichenge rechte engl signed und die logische engl unsigned logical Bin rzahlenarithmetik Bei der vorzeichengerechten Bin rzahlenarithmetik wird die h chstwertige Bin rstelle jedes Operanden und des Resultats gesondert als Vorzeichen behandelt w hrend bei der logischen Bin rzahlenarithmetik die h chstwertige Bin rstelle genau wie die brigen Bin rstellen behandelt wird Bei den einzelnen arithmetischen Operationen bestehen fol gende Unterschiede Addition und Subtraktion von Bin rzahlen Die vorzeichengerechte Addition wird dadurch ausgef hrt da alle Bin rstellen beider Summanden einschlie lich der Vorzeichenstellen addiert werden Wenn einer der Sum manden k rzer ist als der andere wird er so behandelt als sei er durch Bin rstellen die gleich sind dem Wert der Vorzeichenstelle auf die L nge des l ngeren Summanden aufgef llt Die logische Addition besteht ebenfalls in der Addition aller Bin rstellen beider Summan den Wenn jedoch ein Summand k rzer ist wird er so behandelt als sei er links durch Bin rstellen mit dem Wert 0 auf die L nge des l ngeren Summanden aufgef llt Alle Adre berechnungen werden mittels lo
62. war enth lt R1 und R2 jeweils die Adresse des ersten ungleichen Byte im ersten Operanden bzw zweiten Operanden die L ngenfelder in R1 1 bzw R2 1 sind um die Anzahl der gleichen Byte vermindert U3119 J Z125 2 61 CLCL Allgemeine Befehle 62 Wenn die Operanden ungleich sind aber die Ungleichheit erst im Bereich der F ll byte aufgetreten war dann ist das erste Register des l ngeren Operanden um die Anzahl der gleichen Byte und das erste Register des k rzeren Operanden um des sen L nge erh ht im jeweils zweiten Register ist das L ngenfeld des l ngeren Ope randen dementsprechend um die Anzahl der gleichen Byte vermindert und das des k rzeren Operanden ist 0 gesetzt In allen drei F llen sind nach der Befehlsausf hrung jeweils die h chstwertigen Byte von R1 1 und R2 1 unver ndert und die oberen acht Bit bzw das obere Bit je nach Adressierungsmodus von R1 und R2 0 gesetzt Anzeige 0 Equal Operandi Operand2 oder L Operandi 0 und L Operand2 0 1 Low Operandi lt Operand2 2 High Operandi gt Operand2 3 Nicht verwendet Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler X 48 Lesezugriff auf Operandl oder Operand2 unm glich Adre fehler 2367 R1 oder R2 nicht geradzahlig Programmierhinweise Wenn beide Operanden die L nge 0 haben werden sie als gleich betrachtet Die beiden Operanden d rfen sich in beliebiger Weise berlappen Das Anwenderpro
63. wenn zwei gegen berliegende Bitstellen verschieden sind Im ersten Falle sind die Operanden gleich Im zweiten Falle sind sie ungleich und es ist derjenige Operand kleiner dessen zuletzt verglichene Bitstelle 0 ist der andere Operand ist gr er U3119 J Z125 2 Grundlagen 2 5 2 Datentypen Bin rzahlen Der Datentyp Bin rzahl ist neben den Datentypen Dezimalzahl und Gleitpunktzahl f r Daten vorgesehen die arithmetisch behandelt z B addiert werden sollen Bin rzahlen sind Ganzzahlen zur Basis 2 mit einem angenommenen Bin rpunkt rechts von der niedrigstwertigen Bin rstelle Jede Bin rstelle einer Bin rzahl wird in einem Bit dargestellt und zwar von links nach rechts in absteigender Wertigkeit Bin rzahlen kommen in verschiedenen L ngen vor Die h ufigste L nge betr gt 32 Bit und wird vor allem f r Festpunktzahlen siehe unten verwendet Es gibt jedoch auch Befehle f r 16 Bit und 64 Bit lange Bin rzahlen Ausrichtung von Bin rzahlen Zu ihrer Speicherung im Hauptspeicher ben tigen Bin rzahlen je nach ihrer L nge ent weder 2 oder 4 oder 8 aufeinanderfolgende Byte Die Adresse des ersten Byte mu aus gerichtet sein d h durch 2 bzw 4 bzw 8 ohne Rest teilbar sein Man sagt auch da Bin rzahlen an Halbwort bzw Wort bzw Doppelwortgrenzen ausgerichtet sein m s sen Vorzeichen von Bin rzahlen Es gibt Bin rzahlen mit oder ohne Vorzeichen Bin rzahlen mit Vorzeichen hei en Fest punkt
64. wird nach den blichen algebraischen Regeln ermittelt U3119 J Z125 2 Allgemeine Befehle M MR Anzeige Nicht ver ndert Programmunterbrechungen Art Ursachen Adre umsetzungsfehler X 48 M Lesezugriff auf Operand2 unm glich Adre fehler KUHECH MR M RI nicht geradzahlig M D2 X2 B2 keine Wortgrenze Programmierhinweise Beim Befehl MR darf R2 R1 oder R2 Ri 1 sein Wenn R2 R1 1 ist wird das Quadrat aus R2 ermittelt Der gr t und kleinstm gliche Wert f r das Produkt kann sich zu 262 bzw 262 231 ergeben Beispiele Die folgenden Werte von Multiplikand und Multiplikator ergeben die dargestellte Werte f r das Produkt Multiplikand Multiplikator Produkt 29 493 29 SET 493 Minimal und Maximalwerte f r das Produkt 2311 uyal 2624231 U3119 J Z125 2 103 MC 104 Allgemeine Befehle Monitor Call Funktion Der Befehl MC erzeugt eine Programmunterbrechung wegen Monitoraufrufs Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen D11 wo 12 wor Maschinenformat 0 Beschreibung Es erfolgt eine Programmunterbrechung wenn das Maskenbit f r die Monitorklasse die durch das I2 Feld des Befehls bestimmt ist 1 gesetzt ist Der je nach Adressierungsmodus entweder 24 Bit oder 31 Bit lange Adre wert D1 B1 dient als Argument f r die Unterbrechungsroutine Anzeige Nicht ver ndert Programmunterbrechungen Ursa
65. wurde kann entweder nur den unteren Adre raum oder den unteren und oberen Adre raum nutzen Die Unterst tzung von XS Program men ist im Handbuch Einf hrung in die XS Programmierung 2 beschrieben U3119 J Z125 2 261 berblick ESA Befehle AR Modus Der AR Modus access register mode ist ein Teil des ASC Modus address space con trol mode und entscheidet ber die Auswertung der Zugriffsregister bei der Adre umset zung Wenn der AR Modus eingeschaltet ist werden die Zugriffsregister bei der Adressie rung mit ausgewertet und damit k nnen Adressen in Datenr umen angesprochen werden Der Wert 0 in einem Zugriffsregister hat dabei eine spezielle Bedeutung Mit dem Wert 0 in einem Zugriffsregister kann im AR Modus der Programmraum adressiert werden Mit diesem Wert sind die Zugriffsregister beim Start eines Pro grammes vorbelegt Wenn der AR Modus ausgeschaltet ist werden die Zugriffsregister nicht ausgewertet und nur Adressen im Programmraum k nnen angesprochen werden Das Programm arbeitet wie bisherige Programme auf Nicht ESA Anlagen Information ber den AR Modus erhalten Sie durch die Abfrage des ASC Modus mit dem Befehl IAC Mit dem Befehl SAC k nnen Sie den AR Modus ein und ausschalten Hinweise Die ESA Programmierung wird durch folgende BS2000 Makros unterst tzt siehe Handbuch Makroaufrufe an den Ablaufteil 3 DSPSRV Datenraum erzeugen und freigeben ALESRV Programm mit Datenraum
66. 1 64 LM R6 R7 SPERRE CYCLE LR R8 R6 LR R9 R7 IF Z R R8 R4 QOR Z R R9 R5 THEN LA R15 schon belegt EXIT L BEND LR R8 R6 LR R9 R7 OR R8 R4 OR R9 R5 WHEN EQ CDS R6 R8 SPERRE BREAK L BEND Das Registerpaar R4 R5 enth lt ein auf 1 gesetztes Bit an der Stelle die das zu bele gende Element repr sentiert alle anderen Bits sind 0 Das Registerpaar R6 R7 enth lt den alten Inhalt des Bitvektors SPERRE Das Registerpaar R8 R9 entsteht aus der ODER Verkn pfung von R6 R7 mit R4 R5 hat also alle in R6 R7 gesetzten Bits und zus tzlich das in R4 R5 gesetzte Bit gesetzt Das Ergebnis der Verkn pfung wird gesch tzt mittels des CDS Befehls in den Bitvektor SPERRE eingetragen U3119 J Z125 2 293 Gemeinsam benutzte Daten in Multiprozessor Anlagen Beispiel 4 Freigeben eines Elements Gegenbeispiel SPERRE DC D407 OLD DS D NEW DS D SLR RA RA LA RS 1 SLDL R4 64 bitnum bitnum 1 64 X RA A X FFFFFFFF X R5S A X FFFFFFFF L R8 R9 SPERRE gt L R6 R7 SPERRE CYCLE R R8 R4A x R R9 R5 WHEN EQ CDS R6 R8 SPERRE BREAK LR R8 R6 LR R9 R7 BEND Das Registerpaar R4 R5 enth lt ein auf 0 gesetztes Bit an der Stelle die das freizuge bende Element repr sentiert alle anderen Bits sind 1 Das Registerpaar R6 R7 enth lt den alten Inhalt des Bitvektors SPERRE Das Registerpaar R8 R9 entsteht aus der UND Verkn pfung von R6 R7 mit
67. 1 6Charakteristik 64 U3119 J Z125 2 213 berblick 214 Gleitpunktbefehle Exponenten berlauf und Unterlauf Wenn bei einer Gleitpunkt Operation der resultierende Exponent kleiner als 64 d h die Charakteristik kleiner als 0 wird entsteht Exponenten Unterlauf Die Operation wird zu Ende gef hrt Wenn dann das Bit f r Exponenten Unterlauf in der Programmaske 1 ist BS2000 Standard erfolgt eine Programmunterbrechung Mantisse und Vorzeichen sind korrekt aber die Charakteristik des Ergebnisses um 128 zu gro Wenn jedoch bei Exponenten Unterlauf das zugeh rige Bit in der Programmaske 0 ist erfolgt keine Pro gramm Uhterbrechung stattdessen wird als Ergebnis eine sog echte Null erzeugt Wenn bei einer Gleitpunkt Operation der resultierende Exponent gr er als 63 d h die Charakteristik gr er als 127 wird entsteht Exponenten berlauf Die Operation wird zu Ende gef hrt und es erfolgt dann eine Programmunterbrechung Diese Programmun terbrechung erfolgt in jedem Falle es gibt in der Programmaske kein Bit f r Exponen ten berlauf Die Charakteristik des Ergebnisses ist um 128 zu klein Die Mantisse und das Vorzeichen sind aber korrekt Behandlung der Null Signifikanz Wenn die Mantisse einer Addition Subtraktion Multiplikation oder Division 0 wird so wird das Vorzeichen stets positiv gesetzt dagegen h ngt das Vorzeichen einer Mantisse 0 bei anderen Operationen vom Vorzeichen des oder der Eingangsoperande
68. 1 addiert werden Das Ergebnis steht im Beispielsfalle in den Mehrzweckregistern 0 und 1 32 U3119 J Z125 2 Allgemeine Befehle BAL BALR Branch and Link Funktion Die Befehle BALR und BAL speichern die Befehlsfolgeadresse in ein angegebenes Mehr zweckregister und verzweigen dann an eine angegebene Adresse Die Anzeige wird nicht ver ndert Assemblerformate BALR R1 R2 BAL R1 D2 X2 B2 Maschinenformate 0 Beschreibung Die Befehle BALR und BAL speichern zun chst die Befehlsfolgeadresse in das Mehr zweckregister R1 Das Format der gespeicherten Adresse h ngt vom Adressierungsmodus ab 24 Bit Adressierungsmodus ILC 24 Bit lange Befehlsfolgeadresse 0 2 34 78 31 31 Bit Adressierungsmodus 31 Bit lange Befehlsfolgeadresse gt E U3119 J Z125 2 33 BAL BALR Allgemeine Befehle Darin bedeuten ILC Instruction Length Code 01 bei BALR und 10 bei BAL CC Condition Code momentaner Wert der Anzeige 0 1 2 oder 3 PM momentaner Wert der Programmaske BS2000 Standardbesetzung ist F aber dieser Wert kann durch das Anwen derprogramm mittels SPM ge ndert worden sein A Adressing Mode 1 beim 31 Bit Adressierungsmodus Nach der Speicherung der Befehlsfolgeadresse verzweigt der Befehl BALR an die im Mehrzweckregister R2 enthaltene Adresse und der Befehl BAL an die Adresse D2 X2 B2 Diese Adresse ist je nach Adressierungsmodus 24 Bit oder 31 Bit lang Bei BALR erfolgt die
69. 10 access register mode 01 U3119 J Z125 2 ESA Befehle SAC Anzeige Nicht ver ndert Programmunterbrechungen Keine Programmierhinweis Die Werte der Bitstellen 20 bis 23 des D2 Feldes oder des MZR B2 entsprechen den Werten die der Befehl IAC in einem MZR abspeichert Beispiel SAC 512 AR Modus einschalten SAC 0 AR Modus ausschalten U3119 J Z125 2 271 SAR 272 ESA Befehle Set Access Register Funktion Der Befehl SAR bertr gt den Inhalt aus einem Mehrzweckregister in ein Zugriffsregi ster Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen Maschinenformat 0 16 24 28 31 Beschreibung Der Inhalt des Mehrzweckregisters R2 wird in das Zugriffsregister R1 bertragen Die Bitstellen 16 bis 23 des Befehls werden ignoriert Anzeige Nicht ver ndert Programmunterbrechungen Keine U3119 J Z125 2 ESA Befehle STAM Store Access Multiple Funktion Der Befehl STAM speichert die Inhalte von bis zu 16 aufeinanderfolgenden Zugriffsregi stern in aufeinanderfolgende Worte des Hauptspeichers Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen STAM R1 R3 D2 B2 D2 B2 Wortgrenze Maschinenformat 0 20 31 Beschreibung Der Inhalt aufeinanderfolgender Zugriffsregister beginnend mit Ri und endend mit R3 wird in aufeinanderfolgende Worte des Hauptspeichers bertragen Das erste Wort ist mit D2 B2 adr
70. 119 J Z125 2 183 berblick 184 Beispiele Dezimalzahl 12 gepacktes Format 01 oder 01 oder 01 oder 01 oder 2A 2C 2E 2F 5D 5B l J 2 Byte 1 Byte Dezimalbefehle Im Assembler wird das gepackte Format einer Dezimalzahl durch den Konstantentyp P erzeugt wobei zur Vorzeichendarstellung die Sedezimalwerte C f r plus und D f r minus eingesetzt werden P 12 oder P 12 definieren beide je 2 Byte mit dem Inhalt 01 2C und P 5 definiert 1 Byte mit dem Inhalt SD Wie beim entpackten Format bestimmt der Assembler implizit die L nge wenn eine explizite L ngenangabe fehlt Tabelle der Vorzeichenverschl sselungen Verschl sselung A16 B16 Cig D16 E16 F16 Vorzeichen positiv negativ positiv negativ positiv positiv U3119 J Z125 2 Dezimalbefehle AP Add Decimal Funktion Der Befehl AP addiert zwei gepackte Dezimalzahlen Die Summe ersetzt den ersten Summanden Die Anzeige wird gem dem Wert der Summe gesetzt Assemblerformat Maschinenformat 0 8 12 16 36 47 20 32 Beschreibung Die gepackte Dezimalzahl im Feld des zweiten Operanden D2 L2 B2 wird zur gepack ten Dezimalzahl im Feld des ersten Operanden D1 L1 B1 vorzeichengerecht addiert Die gepackte Summe ersetzt den ersten Operanden Der erste Operand und die Sum me haben die L nge L1 Byte der zweite Operand hat die L nge L2 Byte 1 lt L1 L2 lt 16 Beide Operande
71. 14 Sedezimalstellen der Mantisse aus 28 Sedezimalstellen 01 Erweitertes Format Unterer Teil V Charakteristik niedrigstwertige 14 Sedezimalstellen der Mantisse aus 28 Sedezimalstellen 65 72 127 In allen drei Formaten bildet das Bit 0 das Vorzeichen V Die n chsten 7 Bit Bit 1 bis Bit 7 stellen die Charakteristik dar Beim kurzen und langen Format bilden die nachfol genden 24 bzw 56 Bit Bit 8 bis Bit 31 bzw Bit 8 bis Bit 63 die Mantisse die aus 6 bzw 14 Sedezimalstellen besteht oo N w N gt Eine Gleitpunktzahl des erweiterten Formats wird durch zwei Gleitpunktzahlen des lan gen Formats dargestellt diese werden oberer Teil und unterer Teil der erweiterten Gleitpunktzahl genannt Der obere Teil einer erweiterten Gleitpunktzahl kann eine beliebige lange Gleitpunktzahl sein ihr Vorzeichen und ihre Charakteristik bestimmen das Vorzeichen und die Charak teristik der gesamten Gleitpunktzahl Ihre Mantisse bestimmt die h chstwertigen 14 Sedezimalstellen der insgesamt 28 Sedezimalstellen langen Mantisse der erweiterten Gleitpunktzahl Wenn der obere Teil normalisiert ist wird die gesamte Zahl als normali siert betrachtet U3119 J Z125 2 Gleitpunktbefehle berblick Die Mantisse des unteren Teils einer erweiterten Gleitpunktzahl bestimmt die 14 nied rigstwertigen Sedezimalstellen der insgesamt 28 Sedezimalstellen langen Mantisse der erweiterten Gleitpunktzahl Das Vorzeichen und die Charakteristik des unteren T
72. 2 Adre umsetzungsfehler 5 14 Adre wort 6 Adressierung 5 Adressierungsmodi 6 Adressierungsmodus 261 AE 221 AER 221 AH 29 30 32 AL 31 32 ALET 261 ALET Wert 275 Allgemeine Befehle 27 Allocation siehe Bereitstellung von virtuellen Adressen 5 ALR 31 AMODE 38 41 90 AND 121 U3119 J Z125 2 303 Stichw rter 304 Anzeige 12 42 85 146 265 275 AP 181 185 187 AR 27 28 AR Modus 6 8 261 262 Argumentbyte 167 170 Arithmetik von Bin rzahlen 19 ASC Modus 262 265 ASCII 168 Assembler 25 43 166 181 182 184 251 AU 225 Aufbereitung 193 AUR 225 Ausrichtung 8 AW 220 225 AWR 225 AXR 221 227 B B 287 B Feld 7 24 25 BAL 33 34 37 48 86 BALR 33 34 37 48 78 86 BAS 35 36 48 Basisadresse 7 Basisregister 7 24 BASR 35 36 37 38 48 BASSM 39 41 48 90 BC 34 37 42 44 BCR 34 37 42 44 48 BCT 45 46 BCTR 45 79 169 199 BE 65 172 199 287 Befehle nach mnemotechnischem Code 279 Befehle nach Operationscode 283 Befehlsadresse 7 Befehlsaufbau 22 Befehlsfolgeadresse 7 33 34 36 37 41 78 Befehlsoperanden 24 Befehlstypen 22 Bereitstellung von virtuellen Adressen 5 BH 172 199 287 Bin rzahl 17 Bin rzahlenarithmetik 19 Bitfeld 21 U3119 J Z125 2 Stichw rter BL 172 220 287 BM 166 287 BNE 71 169 220 287 BNH 192 287 BNL 135 287 BNM 287 BNO 32 159 287 BNP 287 BNZ 287 BO 44 166 287 BP 287 BR 38 44 48 287 BRE
73. 28 31 Beschreibung Der Inhalt des Zugriffsregisters R2 wird in das Mehrzweckregister R1 bertragen Die Bitstellen 16 bis 23 des Befehls werden ignoriert Anzeige Nicht ver ndert Programmunterbrechungen Keine U3119 J Z125 2 ESA Befehle IAC Insert Address Space Control Funktion Der Befehl IAC bertr gt den momentanen Wert des ASC Modus in ein Mehrzweckregi ster Die Anzeige wird gem dem Wert des ASC Modus gesetzt Assemblerformat Name Operanden Bemerkungen Maschinenformat Io um wezze r Rn 7777 0 16 24 28 31 Beschreibung Den ASC Modus primary space mode oder access register mode k nnen Sie entwe der im Register Ri oder ber die Anzeige abfragen Bit 16 und Bit 17 address space control bits 2 ASC Modus des aktuellen PSW werden in umgekehrter Reihenfolge in die Bitstellen 22 und 23 des Mehrzweckregisters R1 ber tragen d h Bit 16 wird in die Bitstelle 23 und Bit 17 in die Bitstelle 22 des Registers R1 bertragen Die Bitstellen 16 bis 21 des Registers R1 werden auf 0 gesetzt die Bitstel len O bis 15 und 24 bis 31 des Registers bleiben unver ndert Die Bitstellen 16 bis 23 und 28 bis 31 des Befehls werden ignoriert Anzeige 0 primary space mode PSW Bit 16 und PSW Bit 17 0 2 access register mode PSW Bit 16 0 und PSW Bit 17 1 Programmunterbrechungen Keine U3119 J Z125 2 265 LAE 266 ESA Befehle Load Address Extended Funktion Der Befehl LAE l dt
74. 287 BRH 287 BRL 287 BRM 166 287 BRNE 287 BRNH 287 BRNL 287 BRNM 287 BRNO 287 BRNP 287 BRNZ 287 BRO 166 287 BRP 287 BRZ 166 287 BSM 34 37 41 47 48 90 BXH 49 51 BXLE 49 51 BZ 166 287 0 gt C 52 53 57 CC 12 34 35 CD 228 245 251 CDR 228 CDS 68 70 174 CE 220 228 229 CER 228 CH 54 55 Charakteristik 213 CL 44 53 56 57 CLC 58 59 192 CLCL 59 60 63 79 U3119 J Z125 2 305 Stichw rter 306 CLI 64 65 CLM 66 67 94 CLR 56 Condition Code 12 CP 181 188 189 CPYA 263 272 CR 52 CS 68 70 71 174 CSECT 41 CVB 72 73 CVD 74 75 159 D D 76 77 159 D Konstantentyp 251 D Feld 7 24 25 Daten in Multiprozessor Anlagen 289 Datenfehler 14 Datenraum 6 10 261 262 Datentypen 16 DD 230 232 DDR 230 DE 230 Dekrementierung 50 DER 230 Dezimal berlauf 14 15 Dezimalbefehle 181 Direktoperand 24 206 Distanzadresse 7 24 Division 118 Division mit MVO 118 Divisionsfehler 14 Doppelwort 8 DP 181 190 192 DR 76 77 Druckaufbereitung 193 DXR 219 230 E E Exponentenfaktor 251 E Konstantentyp 251 EAR 264 EBCDIC 16 168 EBCDIC Tabelle SRV 10 278 Echte Null 214 258 260 U3119 J Z125 2 Stichw rter ED 181 193 199 EDMK 181 193 198 199 Einerkomplement 19 134 Empfangsfeld Zeichen ED EDMK 196 Entpacktes Format 127 175 182 Erweiterter mnemotechnischer Operationscode 287 Erweitertes Format von Gleitpunktzahlen 216 ESA
75. 295 Gemeinsam benutzte Daten in Multiprozessor Anlagen Reader Writer Synchronisation Hierf r wird im einfachsten Fall ein Lock Wort ben tigt das z B folgende Zust nde annehmen kann Lock ist frei nicht belegt Lock ist von n Lesern belegt n Anzahl der augenblicklichen Leser Bit Lock ist von einem Schreiber belegt 0 Bit 0 cT 31 0 Bit Ein Leser mu folgendes Protokoll einhalten Lese Lock anfordern GET_READ_LOCK Lesen Lese Lock freigeben REL_LREAD_LOCK Ein Schreiber mu folgendes Protokoll einhalten Schreib Lock anfordern GET_WRITE_LOCK Schreiben Schreib Lock freigeben REL WRITE LOCK id Identifikation des Schreibers In der folgenden Tabelle ist f r jede der ben tigten Lock Funktionen aufgef hrt welche Zustands berg nge sie f r das Lock Wort durchf hren und ob daf r ein CS Befehl not CS wendig ist Funktion Zustands bergang GET READ LOCK 0 n gt 0 n 1 REL READ LOCK 0 n gt 0 n 1 Bedingung n gt 0 sonst Fehler GET_WRITE_LOCK 0 0 gt 1 id REL_WRITE_LOCK 1 id gt 0 0 ja ja ja nein Diese Art der Synchronisation ist nicht effizient weil ein Schreiber m glicherweise nie mals sein Schreib Lock bekommt und deshalb nie an die Reihe kommt Sie ist also nur dann anzuwenden wenn die m glichen Leser nur selten ein Lese Lock anfordern und es nicht lange halten 296 U3119 J Z125 2 Gemeinsam benutzte
76. 4001111111111111 FLNO2 x 3F11111111111101 LNOl LNO2 U3119 J Z125 2 259 SU SUR SW SWR Gleitpunktbefehle Das Ergebnis obiger Befehle h ngt vom Wert des Bit f r Signifikanz in der Programm maske ab wenn dieses Bit 1 ist BS2000 Standard lautet das Endergebnis X 4000000000000000 und es erfolgt eine Programmunterbrechung wegen Signifikanz andernfalls lautet das Endergebnis X 000000000000000000 echte Null ohne Program munterbrechung In beiden F llen ist die Anzeige auf O Zero gesetzt Nach dem Charakteristik Abgleich hatte der zweite Operand den Wert X4001111111111110 und die Schutzziffer 1 Das Zwischenergebnis betrug X 4000000000000000F Man beachte da auch bei nicht normalisierender Subtraktion und Addition die Schutzziffern subtrahiert bzw addiert werden 260 U3119 J Z125 2 ESA Befehle berblick 6 ESA Befehle berblick Die ESA Befehle unterst tzen die Erweiterung der virtuellen Adre r ume auf den ESA Anlagen a Zugriffsregister versorgen CPYA EAR SAR LAM STAM LAE b AR ASC Modus abfragen IAC AR ASC Modus setzen oder r cksetzen SAC c berpr fen der Zugriffsregister Adre umsetzung TAR Auf ESA Anlagen Enterprise System Architecture werden neben dem Programmraum program space der dem bisherigen Adre raum entspricht weitere Adre r ume f r Daten zur Verf gung gestellt Diese Datenr ume data spaces haben wie der Pro gramm
77. 5 2 Allgemeine Befehle LM Load Multiple Funktion Der Befehl LM l dt aus dem Hauptspeicher bis zu 16 aufeinanderfolgende Worte in auf einanderfolgende Mehrzweckregister Die Anzeige wird nicht ver ndert Assemblerformat R1 R3 D2 B2 D2 B2 Wortgrenze Maschinenformat 0 20 31 Beschreibung Die aufeinanderfolgenden Mehrzweckregister beginnend mit R1 und endend mit R3 werden mit aufeinanderfolgenden Worten geladen deren erstes mit D2 B2 adressiert ist Wenn R3 kleiner ist als R1 so wird von R1 aufw rts bis zum Mehrzweckregister 15 und vom Mehrzweckregister 0 bis zum und einschlie lich von R3 geladen Wenn R1 R3 ist so wird nur ein Register R1 geladen Befehl Operandl Operand2 LM Inhalt von Register R1 bis R3 Mit D2 B2 adressierte Wortfolge Wwortanzahl R3 R1 1 wenn R3 gt R1 R3 R1 17 wenn R3 lt R1 Anzeige Nicht ver ndert U3119 J Z125 2 95 LM 96 Allgemeine Befehle Programmunterbrechungen Art Ursachen Adre umsetzungsfehler x 4a8 Lesezugriff auf Operand2 unm glich Adre fehler XDCC D2 B2 keine Wortgrenze Beispiel LM 14 1 A ONE TWO THREE FOUR Die Mehrzweckregister 14 15 0 und 1 werden mit 4 aufeinderfolgenden Worten hier Adressen geladen U3119 J Z125 2 Allgemeine Befehle LNR Load Negative Funktion Der Befehl LNR bertr gt den negativen Wert einer 32 Bit langen Festpunktzahl aus einem Mehrzweckregister in ein Mehrzweckregister Di
78. ASSEMBH Beschreibung Dadurch ist ein Assemblerprogramm das die hier beschriebenen Ausrichtungsbedingungen der Operan den erf llt maximal portabel U3119 J Z125 2 Grundlagen Hauptspeicher Adressierung Wenn ein Befehl voraussetzt da einer seiner Operanden in einem Halbwort oder Wort oder Doppelwort enthalten ist dann sagt man da dieser Operand ausgerichtet sein m sse und zwar je nach Fall an einer Halbwortgrenze bzw Wortgrenze bzw Doppel wortgrenze Zum Beispiel verlangen alle Befehle f r Bin rzahlen da die Hauptspeicher bereiche f r diese Bin rzahlen ausgerichtet sind Die Ausrichtungsbedingung gilt auch f r alle Gleitpunktzahlen im Hauptspeicher aber nicht f r Dezimalzahlen und Zeichenfel der Es ergibt sich folgende Hauptspeicherstruktur gt 0 1 2 3 4 3 6 7 Adressen Doppelwort U3119 J Z125 2 9 Register 2 2 2 2 1 2 2 2 10 Grundlagen Register Fast alle Befehle verlangen da ein oder mehrere ihrer Operanden in einem Register enthalten sind Register sind vom Hauptspeicher unabh ngige Speicherbereiche mit sehr schnellem Zugriff Es gibt drei Arten von Registern n mlich Mehrzweckregister Zugriffsregister und Gleitpunktregister Mehrzweckregister Die Zentraleinheiten verf gen ber 16 Mehrzweckregister numeriert von 0 bis 15 Jedes Register ist 32 Bit lang kann also 4 Byte oder ein Wort aufnehmen Die Mehrzweckregi ster dienen zur Basis und Index Adressierung oder
79. Anlagen 6 10 261 ESA Befehle 261 EX 34 37 41 62 78 79 112 EXCLUSIVE OR 177 EXKLUSIV ODER 177 Exponent 213 Exponenten berlauf 14 214 Exponenten Unterlauf 14 15 214 F Falscher Operationscode 14 Feldtrenner 194 Festpunkt berlauf 14 15 28 Festpunktzahlen 18 FLTOFP 220 For Schleifen 50 Formate von Dezimalzahlen 182 Formate von Gleitpunktzahlen 215 FPTOFL 220 F llbyte CLCL 61 F llbyte MVCL 110 F llzeichen ED EDMK 195 Funktionsbyte 167 170 G GB Gigabyte 1 073 741 824 Byte 5 Gepacktes Format 127 175 183 Gezontes Format 182 Gleitpunktbefehle 213 Gleitpunktregister 11 217 Gleitpunktregister Paar 11 Gr te positive Festpunktzahl 2147483647 18 guard digit siehe Schutzziffer 218 U3119 J Z125 2 307 Stichw rter H Halbwort 8 22 Hauptspeicher Adressierung 5 Hauptspeicher Operand 24 HDR 233 HER 233 235 I I Feld 24 206 207 IAC 265 IC 81 82 84 ICM 63 83 84 86 112 147 ILC 34 78 86 Indexadresse 7 Indexregister 7 8 24 Inkrementierung 50 Invertierung eines Zeichenfelds 169 Invertierung von Bitstellen 19 179 IPM 35 85 86 147 K Kleinste negative Festpunktzahl 2147483648 18 Konvertierung von Dezimal in Festpunktzahlen 72 Konvertierung von Festpunkt in Dezimalzahlen 74 Konvertierung von Festpunkt in Gleitpunktzahlen 220 Konvertierung von Gleitpunkt in Festpunktzahlen 220 Kurzes Format von Gleitpunktzahlen 216 L L 28 30 32
80. Anzeige PL1 0 0 PL1 1 1 PL1 1 2 Im ersten Beispiel wird eine positive Null mit einer negativen Null verglichen die ber dies verschieden lang sind das Vergleichsergebnis lautet dennoch gleich Ebenso w rde der Vergleich z B von X 1B mit X 001D die Anzeige auf O Equal setzen U3119 J Z125 2 189 DP 190 Dezimalbefehle Divide Decimal Funktion Der Befehl DP dividiert zwei gepackte Dezimalzahlen Der Quotient und Divisionsrest ersetzen den Dividenden Die Anzeige wird nicht ver ndert Assemblerformat D1 L1 B1 D2 12 B2 L2 lt L1 lt 16 und 1 lt L2 lt Min 8 L1 1 Maschinenformat 0 8 16 36 47 12 20 32 Beschreibung Der Befehl DP dividiert vorzeichengerecht den Dividenden D1 L1 B1 durch den Divi sor D2 L2 B2 und erzeugt den ganzzahligen Teil des Quotienten sowie den Divisions rest als gepackte Dezimalzahlen im Feld des Dividenden Die L nge des Dividenden L1 mu gr er sein als die des Divisors L2 andernfalls erfolgt eine Programmunterbrechung wegen Adre fehlers L2 lt L1 lt 16 Mindestens die erste Dezimalstelle des Dividenden mu 0 sein sonst erfolgt eine Programmun terbrechung wegen Divisionsfehlers Die L nge des Divisors L2 mu kleiner sein als die des Dividenden L1 und darf nicht gr er sein als 8 Byte andernfalls erfolgt eine Programmunterbrechung wegen Adre feh lers Der Divisor kann demnach h chstens 15 Dezim
81. Beispiel Die Gef hrlichkeit des Befehls LA sei an folgenden Befehlen erl utert A A 31 5 A 15 V B 14 15 B B 24 5 1 5 0 14 Im Programmteil A wird eine 31 Bit lange Adresse im Register 5 erzeugt und im Pro grammteil B wird diese durch einen LA Befehl um 1 erh ht Da B im 24 Bit Adressie rungsmodus abl uft wird auch nur eine 24 Bit lange Adresse erzeugt und an A zur ck gegeben Das Problem dabei ist da A im Adre raum unterhalb von 16 MB richtig abl uft oberhalb von 16 MB jedoch falsch U3119 J Z125 2 Allgemeine Befehle LCR Load Complement Funktion Der Befehl LCR bertr gt das Zweierkomplement einer 32 Bit langen Festpunktzahl aus einem Mehrzweckregister in ein Mehrzweckregister Die Anzeige wird gem dem Wert der resultierenden Festpunktzahl gesetzt Assemblerformat Name Operanden Bemerkungen Maschinenformat 0 Beschreibung Das Zweierkomplement der Festpunktzahl im Mehrzweckregister R2 wird in das Mehr zweckregister R1 bertragen Festpunkt berlauf entsteht wenn die kleinste negative Zahl 23 komplementiert wer den soll das Ergebnis in R1 ist dann wieder die kleinste negative Zahl und die Anzeige ist auf 3 Overflow gesetzt au erdem erfolgt eine Programmunterbrechung wenn das Bit f r Festpunkt berlauf in der Programmaske 1 ist BS2000 Standard Anzeige O Zero Ergebnis 0 1 Minus Ergebnis lt 0 2 Plus Ergebnis gt 0 3 Overflow Festpunkt berlauf P
82. Beispiel sieht Bei diesem vierten Beispiel ist brigens einer der F lle von sich berlappenden Operanden gezeigt bei denen eine sp tere Byte Operation hier die dritte das Ergebnis einer fr heren Byte Operation hier der zweiten ndert Der Sinn des Beispiels ist diesen Fall zu zeigen nicht ihn zu empfehlen U3119 J Z125 2 Allgemeine Befehle X XC XI XR Exclusive Or Funktion Die Befehle XR X XI und XC bewirken bitweise die logische EXKLUSIV ODER Verkn p fung zweier Operanden Die Anzeige wird gem dem Wert des Ergebnisses gesetzt Assemblerformate XR R1 R2 X R1 D2 X2 B2 D2 X2 B2 Wortgrenze xI D1 B1 I2 x 00 lt I2 lt X FF xC D1 L B1 D2 B2 1 lt L lt 256 Maschinenformate 0 Beschreibung Die Bit des ersten Operanden werden gem der folgenden Tabelle durch die gegen berliegenden Bit des zweiten Operanden ver ndert Das Ergebnis ersetzt den ersten Operanden U3119 J Z125 2 177 X XC XI XR Allgemeine Befehle Tabelle der EXKLUSIV ODER Verkn pfungen Bitwert Bitwert Bitwert im ersten Operanden im zweiten Operanden im Ergebnis 0 0 0 0 nl 1 1 0 I 1 1 0 Operanden Befehl Operandl Operand2 XR Inhalt von Register R1 Inhalt von Register R2 X Inhalt von Register R1 mit D2 X2 B2 adressiertes Wort XI mit D1 B1 adressiertes Byte Direktoperand I2 XC mit D1 B1 adressiertes Feld mit D2 B2 adressiertes Feld der L nge L Byte der L nge L Byte
83. Bin rstellen berlauf aus der Vorzeichenstelle Im Register R1 hat dann das Resultat ein falsches Vorzeichen an der Bitstelle 0 SR mit R1 R2 nullt das Mehrzweckregister R1 und setzt die Anzeige auf O Zero SLR mit Ri R2 nullt ebenfalls das Mehrzweckregister R1 aber setzt die Anzeige auf 2 Plus U3119 J Z125 2 Allgemeine Befehle SH Subtract Halfword Funktion Der Befehl SH subtrahiert eine 16 Bit lange Festpunktzahl von einer 32 Bit langen Fest punktzahl vorzeichengerecht Die Anzeige wird gem dem Wert der Differenz gesetzt Assemblerformat Name Operanden Bemerkungen R1 D2 X2 B2 D2 X2 B2 Halbwortgrenze Maschinenformat 0 20 31 Beschreibung Das mit D2 X2 B2 adressierte Halbwort im Hauptspeicher wird vorzeichengerecht vom Inhalt des Mehrzweckregisters R1 subtrahiert Der Register Operand wird als 32 Bit lan ge der Halbwort Operand als 16 Bit lange Festpunktzahl behandelt beide mit Vorzei chen Die Differenz ist eine 32 Bit lange Festpunktzahl mit Vorzeichen und ersetzt den urspr nglichen Inhalt des Mehrzweckregisters R1 Festpunkt berlauf entsteht wenn die Differenz gr er als 231 1 bzw kleiner als 231 wird In diesem Fall ist das Ergebnis in R1 um 23 zu klein bzw zu gro die Anzeige wird dann auf 3 Overflow gesetzt und es erfolgt eine Programmunterbrechung wenn in der Programmaske das Bit f r Festpunkt berlauf 1 ist BS2000 Standard Anzeige O Zero Differenz 0 1 Minus Differ
84. DR SD und SXR subtrahieren zwei Gleitpunktzahlen Die normali sierte Differenz ersetzt den ersten Operanden Die Anzeige wird gem dem Wert der Differenz gesetzt Assemblerformate kurze Operanden kurze Differenz SER R1 R2 R1 R2 0 2 4 oder 6 SE R1 D2 X2 B2 R1 0 2 4 oder 6 und m lange Operanden lange Differenz SDR R1 R2 R1 R2 0 2 4 oder 6 SD R1 D2 X2 B2 R1 0 2 4 oder 6 und u erweiterte Operanden erweiterte Differenz SXR R1 R2 R1 R2 0 oder 4 Maschinenformate SER RR x 3B R2 Kurze Operanden Fe Bei 0 12 Lange Operanden SD RX x 6B SXR RR Ra R2 Erweiterte Operanden p N oj N Lange Operanden 16 20 31 252 U3119 J Z125 2 Gleitpunktbefehle SD SDR SE SER SXR Beschreibung Zun chst werden die Charakteristiken der beiden Operanden verglichen die Mantisse des Operanden mit der kleineren Charakteristik wird um die Differenz der Charakteristi ken nach rechts geschoben und seine Charakteristik um denselben Betrag erh ht so da die Charakteristiken gleich werden Die zuletzt hinausgeschobene Sedezimalziffer wird als Schutzziffer aufbewahrt Die Schutzziffer des anderen Operanden oder beider Operanden wenn vor der Subtraktion die Charakteristiken gleich waren wird 0 gesetzt Anschlie end werden die beiden Mantissen einschlie lich der Schutzziffern unter Ber ck sichtigung der Vorzeichen subtrahiert Operand1 Mantisse minus Operand2
85. Daten in Multiprozessor Anlagen Ein effizientes Synchronisationsverfahren l t sich z B mit einem Lock Doppelwort reali sieren das folgende Zust nde annehmen kann Lock ist frei nicht belegt Bit 0 31 32 63 le Lock ist von n Lesern beleg n Anzahl der augenblickl Bit 0 31 32 63 Lock ist von n Lesern beleg aber gegen weitere Leser ge n Anzahl der augenblickl Bit 0 31 32 63 id Identifikation des Sc uaj o Lock ist von einem Schreibe id Identifikation des Sc Bit 0 31 32 63 Ein Leser mu folgendes Protokoll einhalten Lese Lock anfordern GET_READ_LOCK Lesen Lese Lock freigeben REL_LREAD_LOCK Ein Schreiber mu folgendes Protokoll einhalten Schreib Lock anfordern und Lese Lock sperren GET_WRITE Warten auf Freigabe des Lese Locks Schreiben Schreib Lock freigeben und Lese Sperre aufheben REL_WRI ichen Leser Cr sperrt ichen Leser hreibers r belegt hreibers LOCK_LINHIBIT_LREAD TE_LOCK_ADMIT _READ In der folgenden Tabelle ist f r jede der ben tigten Lock Funktionen aufgef hrt welche Zustands berg nge sie f r das Lock Wort durchf hren und ob d oder ein CS Befehl notwendig ist af r ein CDS Befehl CS CDS Funktion Zustands bergang GET_READ_LOCK 0 n gt 0 n 1 REL READ LOCK x n gt x n 1 x 0 id Bedingung n gt 0 sonst Fehler GET_WRITE_LOCK 0 n gt id n REL_WRITE_LOCK id 0 gt 0 0 U3119
86. Datentypen Vergleich von Bin rzahlen Der vorzeichengerechte Vergleich von zwei Bin rzahlen wird so durchgef hrt als werde eine vorzeichengerechte Subtraktion ausgef hrt bei der das Resultat nicht gespeichert wird Die Anzeige wird auf O Equal bzw 1 Low bzw 2 High gesetzt je nachdem ob der erste Operand gleich oder kleiner oder gr er ist als der zweite Festpunkt berlauf kann nicht auftreten Der logische Vergleich von zwei Bin rzahlen besteht aus einem bitweisen Vergleich der beiden Zahlen von links nach rechts Der Vergleich wird beendet wenn entweder die beiden Operanden abgearbeitet sind oder zwei gegen berliegende Bit verschieden sind Die Anzeige wird bei Gleichheit der Operanden auf 0 Equal gesetzt und bei Ungleich heit entweder auf 1 Low oder 2 High je nachdem ob die zuletzt verglichene Bitstelle des ersten Operanden 0 oder 1 war Bitfeld Der Datentyp Bitfeld ist ein Datentyp f r Folgen von 1 Bit Werten Jeder Bit Wert wird in einer Bitstelle dargestellt Die einzelnen Bitstellen werden in den Befehlen f r Bitfelder unabh ngig von den brigen Bitstellen behandelt Bitfelder beginnen oder enden an Bytegrenzen Die Bitstellen eines Bitfeldes werden gew hnlich von links nach rechts ab 0 numeriert aber diese Konvention ist f r die Zentraleinheit unerheblich Ein h ufig vorkommender Anwendungsfall des Datentyps Bitfeld sind Masken Masken dienen der Auswahl einzelner Bit oder Byte eines Registers oder des Haupts
87. Einleitung 1 1 1 1 2 U3119 J Z125 2 Zielgruppe Einleitung In diesem Handbuch sind alle Assemblerbefehle aus dem Befehlsvorrat der vom Be triebssystem BS2000 unterst tzten Zentraleinheiten einzeln und ausf hrlich beschrieben Die Assemblerbefehle sind diejenigen Befehle des Befehlsvorrats die von Anwendern ohne Einschr nkungen zur Formulierung von Assemblerprogrammen benutzt werden k nnen Die Befehle sind au erdem sicher in dem Sinne da bei ihrer Ausf hrung der volle Schutz der Hardware und des Betriebssystems BS2000 gewahrt ist Zielgruppe Das Handbuch richtet sich an Anwender die im BS2000 Programme in der Assembler oder Makrosprache erstellen benutzen oder warten Assembler und Betriebssystem Grundkenntnisse werden vorausgesetzt Konzept des Handbuchs Die Beschreibung der Assemblerbefehle folgt einem einheitlichen Schema Bei jedem Befehl sind explizit dargestellt e seine Funktion sein Assemblerformat d h seine Schreibweise in Assemblersprache e sein Maschinenformat d h seine Darstellung in der Zentraleinheit e sein Ablauf im Detail etwaige von ihm gesetzte Werte der Anzeige e sowie die bei seinem Ablauf m glichen Programmunterbrechungen Au erdem haben wir die meisten Befehle erg nzt um e Programmierhinweise sowie e ein oder mehrere Beispiele Zielgruppe Einleitung Die Befehle selbst sind in 4 Gruppen gegliedert Allgemeine Befehle Kapitel 3 Dezimalbefehle Kapi
88. F llen ist dann im R Feld f r die erweiterten Gleitpunkt Operanden die Nummer 0 bzw 4 anzugeben 11 Anzeige 2 3 12 Grundlagen Anzeige Condition Code Die meisten Befehle setzen die Anzeige d h erzeugen w hrend ihrer Ausf hrung einen Wert in einem internen Hardwareregister mit dem Namen Anzeige Die Anzeige engl Condition Code abgek rzt CC ist 2 Bit lang und kann auf die Werte O oder 140 oder 2 oder 3 gesetzt sein Es gibt nur eine Anzeige sie beh lt einen gesetzten Wert solange bis ein nachfolgender Befehl sie auf einen anderen Wert setzt Der h ufigste Anwendungsfall f r die Anzeige sind Vergleiche Alle Vergleichsbefehle setzen die Anzeige gem dem von ihnen ermittelten Vergleichsergebnis n mlich 0 wenn die verglichenen Operanden gleich sind und 1 bzw 2 wenn der erste Ope rand kleiner bzw gr er ist als der zweite Nach einem Vergleichsbefehl kann der nach folgende Befehl die gesetzte Anzeige abfragen und in Abh ngigkeit von ihrem Wert geeignete Aktionen veranlassen Bei jedem Befehl ist beschrieben ob und ggf welche Werte er in der Anzeige setzt und welche Bedeutung diese Werte dann haben Jedoch verwenden Befehle Besonderhei ten gibt es bei den Befehlen AL ALR SL SPM und TM die die Anzeige setzen das folgende gemeinsame Schema zum Setzen auf einen der vier m glichen Werte Wert der Anzeige Bedeutung Das Resultat des Befehls ist 0 ach Vergleichen bedeutet dies da der
89. Festpunktzahlen behandelt Der Inhalt des Mehrzweckregisters R1 wird nicht ver ndert Anzeige 0 Equal Operandi Operand2 1 Low Operandi lt Operand2 2 High Operandi gt Operand2 3 Nicht verwendet U3119 J Z125 2 Allgemeine Befehle C CR Programmunterbrechungen Art Ursachen Adre umsetzungsfehler x 4a8 C Lesezugriff auf Operand2 unm glich Adre fehler KOGE C D2 X2 B2 keine Wortgrenze Beispiel L 5 F 1 c 5 F 1 setzt Anzeige 1 Low Anstelle des Befehls C w rde der Befehl CL die Anzeige 2 High setzen U3119 J Z125 2 53 CH 54 Allgemeine Befehle Compare Halfword Funktion Der Befehl CH vergleicht eine 32 Bit lange Festpunktzahl vorzeichengerecht mit einer 16 Bit langen Festpunktzahl Die Anzeige wird gem dem Vergleichsergebnis gesetzt Assemblerformat Name Operanden Bemerkungen R1 D2 X2 B2 D2 X2 B2 Halbwortgrenze Maschinenformat 0 20 31 Beschreibung Der Inhalt des Mehrzweckregisters R1 wird mit dem durch D2 X2 B2 adressierten Halb wort des Hauptspeichers vorzeichengerecht verglichen Der Register Operand wird als 32 Bit lange Festpunktzahl der Halbwort Operand wird als 16 Bit lange Festpunktzahl behandelt Anzeige 0 Equal Operandi Operand2 1 Low Operandi lt Operand2 2 High Operandi gt Operand2 3 Nicht verwendet Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler X 48 Lesezugriff auf Operand2 unm glich Adre fehler
90. J 2125 2 CDS CS lock rechtes_wort CS lock linkes_wort nein 297 Gemeinsam benutzte Daten in Multiprozessor Anlagen 298 Multiprozessor F higkeit von Warteschlangen Mechanismen Anhand der Ein und Auskettung einer LIFO last in first out Warteschlange Queue wird die Multiprozessor F higkeit dargestellt Vorgegeben sei eine Warteschlange mit Anker Q und den eingeketteten Elementen X Y und Z Das freie Element W soll zu geeigneter Zeit eingekettet werden LIFO Queue Queue Anker Element X Element Y Element Z Bl J Gl M chten Sie bei der Bearbeitung der Warteschlange auf den Schutz durch eine Sperre verzichten weil hierdurch zu gro e Performance Einbu en entstehen w rden m ssen Sie f r den Update der Warteschlange den CS Befehl benutzen F r die Einkettung eines Elements in die Warteschlange reicht der CS Befehl aus um die Serialisierung von Prozessen welche m glicherweise gleichzeitig einketten wollen zu garantieren Dies ergibt sich aus der Tatsache da f r die bernahme des Zeigers auf das vorherige vorderste Element in das Link Feld des einzukettenden Elements und den Update des Warteschlangen Ankers nur dieser ausgewertet werden mu Beim Ausketten reicht dagegen der CS Befehl nicht mehr aus um den gleichzeitigen Zugriff mehrerer Ausketter auszuschlie en Man betrachte hierzu folgenden Ablauf auf der oben dargestellten Warteschlangen Konfiguration Ausketten durch Andere Tasks Zustand d
91. KARGA D2 X2 B2 keine Halbwortgrenze U3119 J Z125 2 Allgemeine Befehle Beispiel L 5 F 1 CH 5 H 1 setzt Anzeige 0 Equal Im Beispiel wird eine Bin rzahl aus 32 Einsen mit einer Bin rzahl aus 16 Einsen vergli chen Der Vergleich ergibt gleich weil der zweite Operand so behandelt wird als sei er links mit 16 Einsen aufgef llt U3119 J Z125 2 CH 55 CL CLR 56 Allgemeine Befehle Compare Logical Funktion Die Befehle CLR und CL vergleichen zwei 32 Bit lange Bin rzahlen logisch Die Anzeige wird gem dem Vergleichsergebnis gesetzt Assemblerformate CLR R1 R2 CL R1 D2 X2 B2 D2 X2 B2 Wortgrenze Maschinenformate Beschreibung Durch den Befehl CLR wird der Inhalt des Mehrzweckregisters R2 durch den Befehl CL wird das mit D2 X2 B2 adressierte Wort des Hauptspeichers logisch mit dem Inhalt des Mehrzweckregisters R1 verglichen Beide Operanden werden als 32 Bit lange Bin rzah len ohne Vorzeichen behandelt Der Inhalt des Mehrzweckregisters R1 wird nicht ver ndert Anzeige 0 Equal Operandi Operand2 1 Low Operandi lt Operand2 2 High Operandi gt Operand2 3 Nicht verwendet U3119 J Z125 2 Allgemeine Befehle CL CLR Programmunterbrechungen Art Ursachen Adre umsetzungsfehler x 4a8 CL Lesezugriff auf Operand2 unm glich Adre fehler KOGE CL D2 X2 B2 keine Halbwortgrenze Beispiel L 5 F 1 CL 5 F 1 setzt Anzeige 2 High An
92. Keine beim Befehl selbst Wenn allerdings die Zieladresse keine Halbwortadresse ist oder auf sie nicht zugegriffen werden kann erfolgt eine entsprechende Programmunterbrechung mit dem Gewicht 5C bzw 48 an der Zieladresse Programmierhinweise Der Befehl BSM dient haupts chlich zum R cksprung aus einem Unterprogramm das mit einem der Befehle BASR BAS oder BASSM aufgerufen wurde Der Befehl kann jedoch auch als unbedingter Sprung in anderen F llen verwendet werden Es mu davor gewarnt werden den Befehl BSM zum R cksprung aus einem Unter programm zu verwenden das mit dem Befehl BAL aufgerufen wurde Wenn n mlich das aufrufende Programm im 24 Bit Adressierungsmodus abl uft kann im aufrufen den Programm nach der R ckkehr falscher Adressierungsmodus herrschen wegen des ILC Wertes 10 in den Bitstellen 0 und 1 der Befehlsfolgeadresse Unterpro gramme die mit BALR oder BAL gerufen wurden sollten mit den Befehl BCR oder BC verlassen werden Der Befehl BSM ist nur auf den Zentraleinheiten verf gbar die ber den 31 Bit Adressierungsmodus verf gen Um ein Assemblerprogramm unabh ngig von der Zentraleinheit zu machen auf der es abl uft gibt es im Vorrat der Makroaufrufe des BS2000 V9 0 und Nachfolger den Makro BSM mit dem der Befehl BSM einge schalt wird Der Makroaufruf BSM generiert auf Anlagen mit 31 Bit Adressie rungsmodus den Befehl BSM und auf Anlagen die nur ber den 24 Bit Adressie rungs
93. LA 136 137 SLDA 139 140 SLDL 142 143 SLL 144 145 SLR 98 130 133 SP 181 203 205 SPID 261 SPM 15 86 146 147 219 227 SR 86 129 134 172 SRA 148 149 155 U3119 J Z125 2 311 Stichw rter 312 SRDA 150 151 153 SRDL 152 153 SRL 154 155 SRP 181 206 209 SS Befehlstyp 23 ST 156 220 STAM 273 STC 80 156 169 STCK 158 159 STCM 160 161 STD 220 256 STE 256 STH 156 STM 162 163 STXIT 15 STXIT Proze 13 SU 257 Subtraktion von Bin rzahlen 19 SUR 257 SVC 164 SW 257 259 SWR 257 SXR 252 T Tagesuhr 158 TAR 275 Textzeichen 194 TM 44 165 166 TR 167 169 TRT 10 170 172 TS 173 U berlappung 62 110 128 179 Umsetzungstabelle 167 168 170 UND 121 UNPK 175 176 unsigned siehe logische Bin rzahlenarithmetik 19 Unterbrechungsgewicht 13 USING 37 U3119 J Z125 2 Stichw rter V V Konstante 38 41 90 Vergleich von Bin rzahlen 21 Vergleich von Zeichen feldern 16 Vergleichsbefehle 54 60 66 Verschiebung einer Dezimalzahl 118 Verschiebung von Bin rzahlen 20 Verschiebung von Dezimalzahlen 118 206 virtuelle Adresse 261 Virtuelle Adressen 5 Vorzeichen von Bin rzahlen 17 19 Vorzeichen von Dezimalzahlen 182 183 Vorzeichen von Gleitpunktzahlen 213 vorzeichengerechte Bin rzahlenarithmetik 19 w Wertebereich von Bin rzahlen ohne Vorzeichen 17 Wertebereich von Dezimalzahlen 183 Wertebereich von Festpunktzahlen 18 288 Wertebereich
94. LNO1l 6 FLNO2 ergibt Anzeige 1 Low Mit diesen Daten wird durch die obigen Befehle die Anzeige auf 1 Low gesetzt weil nach dem Charakteristikabgleich die Schutzziffern ungleich sind Dagegen w rde die Anzeige bereits auf O Equal gesetzt wenn FLNO2 nur um Eins kleiner w re also den Wert X 4610000F 16 15 h tte da dann die beiden Schutzziffern gleich sind U3119 J Z125 2 229 DD DDR DE DER DXR Gleitpunktbefehle Divide Funktion Die Befehle DER DE DDR DD und DXR dividieren zwei Gleitpunktzahlen Der normali sierte Quotient ersetzt den ersten Operanden Der Befehl DXR ist nur im Befehlsvorrat der Zentraleinheiten verf gbar die ber den 31 Bit Adressierungsmodus verf gen Die Anzeige wird nicht ver ndert Assemblerformate kurze Operanden kurzer Quotient DER R1 R2 R1 R2 0 2 4 oder 6 DE R1 D2 X2 B2 R1 0 2 4 oder 6 und lange Operanden langer Quotient DDR R1 R2 R1 R2 0 2 4 oder 6 DD R1 D2 X2 B2 R1 0 2 4 oder 6 und x erweiterte Operanden erweiterter Quotient DXR R1 R2 R1 R2 0 oder 4 Maschinenformate DER RR x 3D R2 Kurze Operanden EA DE RX X TDI Kurze Operanden DDR RR X 2D Lange Operanden 0 Operanden 16 24 28 31 Lange Operanden 230 U3119 J Z125 2 Gleitpunktbefehle DD DDR DE DER DXR Beschreibung Der Gleitpunkt Operand1 ist der Dividend der Gleitpunkt Operandg2 ist der Divisor Der normalisierte Quoti
95. Mehrzweckregister B2 l dt Beispiele Die folgenden Beispielbefehle ergeben Register 0 vorher Beispielbefehl Register 0 nachher Anzeige 00 01 unver ndert 1 EEE A unver ndert 10 42 3500 unver ndert 10 00 unver ndert Das letzte Beispiel zeigt einen Fall ohne Verschiebung von der Verschiebezahl werden nur die niedrigstwertigen 6 Bit verwendet und diese ergeben bei der Zahl 64 den Wert 0 Weder werden die Register noch wird die Anzeige ver ndert U3119 J Z125 2 145 SPM 146 Allgemeine Befehle Set Program Mask Funktion Der Befehl SPM setzt die Programmaske und die Anzeige auf angegebene Werte Die Anzeige wird gem dem neuen Wert der Anzeige gesetzt Assemblerformat Name Operanden Bemerkungen Maschinenformat 0 8 12 15 Beschreibung Die Bitstellen 2 und 3 des Mehrzweckregisters R1 ersetzen den bisherigen Wert der Anzeige und die Bitstellen 4 bis 7 von R1 ersetzen den bisherigen Wert der Program maske Die Bitstellen 0 und 1 sowie 8 bis 31 des Mehrzweckregisters R1 werden ignoriert Ebenso werden die Bitstellen 12 bis 15 des Befehls SPM ignoriert Anzeige 0 Equal Die Bitstellen 2 und 3 von R1 sind 00 1 Low Die Bitstellen 2 und 3 von R1 sind 01 2 High Die Bitstellen 2 und 3 von R1 sind 10 3 Overflow Die Bitstellen 2 und 3 von R1 sind 11 Programmunterbrechungen Keine U3119 J Z125 2 Allgemeine Befehle SPM Programmierhinweise Der Befehl SPM erm g
96. Operand3 ersetzt 1 Not Equal Operand2 war ungleich Operand1 Operand1 ist durch Operand2 ersetzt 2 Nicht verwendet 3 Nicht verwendet Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Lese Schreibzugriff auf Operand2 unm glich Adre fehler X 5C CS D2 B2 keine Wortgrenze CDS D2 B2 keine Doppelwortgrenze oder R1 oder R3 nicht geradzahlig Programmierhinweise U3119 J Z125 2 Die Befehle CS und CDS sowie TS sperren als einzige Befehle des Befehlsvorrats w hrend der Zeit ihrer Ausf hrung die von ihnen adressierten Hauptspeicherdaten gegen Lese und Schreibzugriffe durch andere Programme derselben oder anderer Zentraleinheiten Sie verhindern auch da w hrend ihres Ablaufs auf nachfolgende Befehle und oder deren Operanden zugegriffen wird Die Befehle stellen also sicher da der Datenzustand zum Zeitpunkt ihres anf nglichen Lesevorgangs gleich ist dem Zustand zum Zeitpunkt ihres abschlie enden Schreibvorgangs Zu diesem Zweck findet vor und nach dem Befehl CS und CDS in der Hardware eine sog Serialisierung statt bei der alle anstehenden Speicherzugriffe abgearbeitet werden Dieser Mechanismus pr destiniert die Befehle CS und CDS f r Synchronisationspro bleme in Multiprozessor Anwendungen In solchen Anwendungsf llen mu jedes der simultan ablaufenden Programme ber cksichtigen da w hrend seiner eigenen Bearbeitung und Ver nderung eines gemeinsamen Speicherbereichs ein and
97. Operanden 0 16 20 31 7 Befehlstyp SS F r Befehle mit zwei Speicher Operanden mit gleicher oder verschiedener Operanden L nge Die L L1 und L2 Felder enthalten die um Eins verminderte L nge SS U3119 J Z125 2 23 24 Befehlsaufbau Grundlagen Legende In den vorhergehend beschriebenen Befehlstypen bedeuten Bezeichnung Bedeutung OP 8 16 Bit Operationscode R1 R2 R3 4 Bit ehrzweck Zugriffs oder Gleitpunktregister 1 M3 4 Bit aske Bl B2 4 Bit Basisregister x1 X2 4 Bit Indexregister D1 D2 12 Bit Distanzadresse 12 8 Bit Direktoperand L 8 Bit Operanden L nge minus 1 L1 1 L2 1 4 Bit Operanden L nge minus 1 Der Operationscode OP ist eine befehlsspezifische zwei oder vierstellige sedezimale Zahl Sie ist bei jedem Befehl genannt und in Assemblerschreibweise dargestellt z B beim Befehl MVN durch X D1 Die ersten beiden Bitstellen des Operationscodes bestim men die L nge des Befehls wie folgt Bitstellen 0 und 1 Befehlstyp en Befehlsl nge des Operationscodes 00 2 Byte 01 4 Byte 10 RRE RS S SI 4 Byte 11 SS 6 Byte Befehlsoperanden Die an einer Befehlsausf hrung beteiligten Operanden werden rechts vom Operations code in befehlstyp spezifischen Feldern bestimmt Je nach Befehlstyp sind bei einem Befehl bis zu drei Operanden beteiligt Sie werden in diesem Handbuch Operand1 Ope rand2 und Operand3 genannt Die Bestimmungsgr en dieser Operanden im Befehl sind durch di
98. PL3 100 PL2 1 PL5 1001 PL3 100 PL2 1 PL5 L0017 PL3 100 PL2 1 PL5 1000 PL3 100 PL2 0 PL3 1000 unver ndert Divisionsfehler PL8 1000 unver ndert Adre fehler Im vorletzten Beispiel entsteht Divisionsfehler weil der Quotient P 1000 zu seiner Spei cherung 3 Byte ben tigen w rde aber nur 2 Byte zur Verf gung stehen das dritte Byte ist f r den Divisionsrest reserviert Im letzten Beispiel entsteht Adre fehler weil die Bedingung L2 8 lt Min L1 1 8 Min 7 8 7 verletzt ist 192 U3119 J Z125 2 Dezimalbefehle ED EDMK Edit Funktion Die Befehle ED Edit und EDMK Edit and Mark bereiten eine oder mehrere gepackte Dezimalzahlen in eine druckgerechte Form auf Der Befehl EDMK tr gt zus tzlich die Adresse der h chstwertigen signifikanten Dezimalstelle ins Mehrzweckregister 1 ein Die Anzeige wird gem dem Wert der letzten aufbereiteten Dezimalzahl gesetzt Assemblerformate Name Operanden Bemerkungen L lt 256 L lt 256 Pr IA IA ED D1 L B1 D2 B2 EDMK D1 L B1 D2 B2 Maschinenformate 0 8 16 20 32 36 47 Beschreibung Die Befehle ED und EDMK bereiten eine oder mehrere aufeinanderfolgende gepackte Dezimalzahlen in eine druckgerechte Form auf Die Aufbereitung geschieht unter der Steuerung einer Maske Der Befehl EDMK leistet das Gleiche wie der Befehl ED er markiert jedoch zus tzlich die h chstwertige
99. R 2 ja Glp R1 R2 LNER 31 RR 2 ja Glp R1 R2 LNR 11 RR 2 ja Allg R1 R2 LPDR 20 RR 2 ja Glp R1 R2 LPER 30 RR 2 ja Glp R1 R2 LPR 10 RR 2 ja Allg R1 R2 LR 18 RR 2 nein Allg R1 R2 LRDR 25 RR 2 nein Glp R1 R2 LRER 35 RR 2 nein Glp R1 R2 LTDR 22 RR 2 ja Glp R1 R2 LTER 32 RR 2 ja Glp R1 R2 LTR 12 RR 2 ja Allg R1 R2 5C RX 4 nein Allg R1 D2 X2 B2 AF s 4 ja Allg D1 B1 I2 D 6C RX 4 nein Glp R1 D2 X2 B2 DR 2C RR 2 nein Glp R1 R2 E TE RX 4 nein Glp R1 D2 X2 B2 ER 3C RR 2 nein Glp R1 R2 H 4C RX 4 nein Allg R1 D2 X27 B2 P FC ss 6 nein Dez D1 L1 B1 D2 L2 B2 R I RR 2 nein Allg R1 R2 VC D2 SS 6 nein Allg D1 L B1 D2 B2 VCL 0E RR 2 ja Allg R1 R2 VI 92 SI 4 nein Allg D1 B1 I2 VN D1 35 6 nein Allg D1 L B1 D2 B2 VO F1 SS 6 nein Allg D1 L1 B1 D2 L2 B2 VZ D3 ss 6 nein Allg D1 L B1 D2 B2 XD 67 RX 4 nein Glp R1 D2 X2 B2 280 U3119 J Z125 2 nemo Code XDR XR H oc OI OR PACK SAC un LDA LDL LL LR PM RA RDA RDL RL RP nuonmunnnnnunununun un STAM STC STCK STCM STD STE STH ST SU SUR SVC SW SWR SX TAR TM TR TRT TS UNPK D U3119 J 2125 2 Op Cod J w ww w w w 200 W e w 8A F3 Befehle nach mnemotechnischem Code Bef L nge An Bef Typ in Byte zeige art RR 2 nein Glp RR 2 nein Glp RX 4 ja Allg SS 6 ja Allg SI 4 ja Allg RR 2 ja Allg RX 4 ja Allg SS 6 ja Allg SI 4 ja Allg RR
100. R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X a B2 32 B2 132 32 32 B2 32 32 32 B2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 r befehlsabh ngig U3119 J Z125 2 U3119 J 2125 2 Op Cod Mnemo Code IX cc jan Hunnnunnnnuubun 4 HUS CLI OI XI LM LAM STAM MC STCK SAC IP IAC DXR TAR CPYA SAR EAR cs CDS CL STCM I MV MVC MVZ NC CLC OC XC TR TRT Bef Typ RX RX RS RS RS RS RS RS RS RS RS RS RS SI SI S SI SI SL SL RS RS RS Ek S S RRE RRE RRE RRE RRE RRE RRE RS RS RS RS RS SS SS SS SS SS SS SS SS SS L nge An Bef in Byte zeige art ja ANNNNNNNNNN NN ea e e ADD NND ID ID ID DB BB BB IB IB IB IB IB nein ja nein nein nein ja ja ja ja nein Glp Glp Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg ESA ESA Allg Allg ESA Allg ESA Glp ESA ESA ESA ESA Allg Allg Allg Allg A
101. Stel lung aus befindet und einem Signifikanzstarter eine Sendefeldziffer gegen berliegt der kein Plus Vorzei chen folgt oder einem Ziffernselektor eine Sendefeldziffer gegen berliegt die lt 0 ist und der kein Plus Vorzeichen folgt In allen anderen F llen wird der Signifikanz Indikator nicht ver ndert siehe dazu auch die zusammenfassende Tabelle weiter unten Empfangsfeld Zeichen Das Resultat der Aufbereitung durch die Befehle ED und EDMK wird in das Empfangs feld gespeichert und ersetzt die Maske es hat deren L nge von L Byte Es besteht aus Textzeichen F llzeichen und gezonten Sendefeldziffern Ein Textzeichen in der Maske bleibt entweder unver ndert oder wird durch das F llzei chen ersetzt je nachdem ob bei seinem Auftreten sich der Signifikanz Indikator in der Stellung ein bzw in der Stellung aus befindet Ein Ziffernselektor oder Signifikanzstarter in der Maske wird durch das F llzeichen ersetzt wenn sich der Signifikanz Indikator in der Stellung aus befindet und die gegen berliegende Sendefeldziffer 0 ist Dagegen wird ein Ziffernselektor oder Signifikanz starter in der Maske durch die gegen berliegende gezonte Sendefeldziffer ersetzt wenn diese 0 ist oder sich der Signifikanz Indikator in der Stellung ein befindet U3119 J Z125 2 Dezimalbefehle ED EDMK Zusammenfassung Die folgende Tabelle fa t die Funktionen der einzelnen Maskenzeichen zusammen Die linken 4 Spalten zeigen
102. a8 Lese Schreibzugriff auf Operandl oder Lesezugriff auf Operand2 unm glich Programmierhinweise Der Befehl TR kann dazu benutzt werden um Eingabedaten von einem Code in einen anderen Code zu konvertieren z B von ASCII in EBCDIC oder von Kleinbuch staben in Gro buchstaben siehe Beispiel 1 Der Befehl TR kann auch dazu benutzt werden um die Byte eines Zielfeldes in eine andere Reihenfolge zu bringen Dazu speichert man in das Zielfeld ein Muster und verwendet als Umsetzungstabelle das Sendefeld mit den in ihrer Reihenfolge zu ndernden Byte Das Byte i des Musters i 0 1 L 1 mu dabei die bin re Platz nummer desjenigen Byte im Sendefeld enthalten das an das Byte i des Zielfelds kommen soll Wenn beispielsweise ein 3 Byte langes Zielfeld zyklisch vertauscht werden soll also z B aus a b c die Folge c a b gemacht werden soll mu das Byte 0 des Zielfelds d h des Musters den Wert X 02 Platznummer des Sende bytes c erhalten Byte 1 den Wert X 00 und Byte 2 den Wert X 01 siehe dazu das Beispiel 2 Die Umsetzungstabelle ist so lang wie der Wert des gr ten Argumentbyte plus 1 Sicherheitshalber wird man gew hnlich die Maximall nge von 256 Byte f r jede Umsetzungstabelle vorsehen und auch alle Byte in ihr mit Werten definieren Nur wenn sicher bekannt ist da der Wert des gr ten Argumentbyte kleiner als FF sein wird oder da einzelne Argumentbyte Werte nicht vorkommen werden
103. alstellen umfassen L2 lt Min L1 1 8 Der Quotient wird L1 L2 Byte lang und wird als gepackte Dezimalzahl Ganzzahl in die linken L1 L2 Byte des Felds des Dividenden gespeichert der Divisionsrest wird L2 Byte lang und wird als gepackte Dezimalzahl Ganzzahl in die rechten L2 Byte des Felds des Dividenden gespeichert Quotient und Divisionsrest ersetzen somit vollst ndig den Dividenden U3119 J Z125 2 Dezimalbefehle DP Beide Operanden m ssen g ltige gepackte Dezimalzahlen darstellen andernfalls erfolgt eine Programmunterbrechung wegen Datenfehlers Das Vorzeichen des Quotienten wird nach den blichen algebraischen Regeln gebildet auch wenn der Dividend 0 ist der Divisionsrest hat stets das Vorzeichen des Dividen den auch wenn der Divisionsrest 0 ist Ein positives Vorzeichen wird als C ein nega tives Vorzeichen wird als D dargestellt Wenn der Divisor 0 ist oder der Quotient l nger ist als L1 L2 Byte findet eine Program munterbrechung wegen Divisionsfehlers statt nicht eine Programmunterbrechung we gen Dezimal berlaufs Dies gilt auch f r den Fall da Dividend und Divisor beide 0 sind Bei Divisionsfehler bleiben die Eingangsoperanden unver ndert Anzeige Nicht ver ndert Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler Lese Schreibzugriff auf Operandl oder Lesezugriff auf Operand2 unm glich L1 oder L2 falsch Inkorrektes Format eines Operanden Divisor 0 oder Quotient zu
104. antisse des Eingangsoperanden im Gleitpunktregister R2 0 ist wird als Endergebnis eine echte Null erzeugt Signifikanz oder Exponenten Unterlauf tritt in die sem Fall nicht auf Das Vorzeichen des Ergebnisses ist gleich dem des Eingangs Operanden eine echte Null hat jedoch stets ein positives Vorzeichen Anzeige Nicht ver ndert Programmunterbrechungen Art Gewicht Ursachen Adre fehler XOG falsche Gleitpunktregisterangabe Exponenten Unterlauf X70 Ergebnis Charakteristik lt 0 Programmierhinweise Bei HER werden die rechten 32 Bit des Gleitpunktregisters R2 ignoriert und und die rechten 32 Bit des Gleitpunktregisters R1 nicht ver ndert Das Ergebnis eines HER oder HDR Befehls ist in allen F llen identisch mit dem Ergebnis einer Gleitpunktdivision mittels DER bzw DDR und einem Divisor 2 Durch das BS2000 wird das Maskenbit fur Exponenten Unterlauf in der Program maske mit 1 vorbesetzt so da unter den oben beschriebenen Bedingungen eine Programmunterbrechung erfolgt Mit dem Befehl SPM kann das Anwenderprogramm jedoch die Vorbesetzung ndern Eine echte Null kann nur entstehen wenn der Eingangsoperand eine Mantisse 0 hat oder wenn Exponenten Unterlauf auftritt und das Bit f r Exponenten Unterlauf in der Programmaske 0 ist R2 darf R1 sein U3119 J Z125 2 Gleitpunktbefehle HDR HER U3119 J Z125 2 Beispiel Name Operanden 6 FLNO 4 6 OF FLNO X 86000001 1 1676 16758
105. aske 1 ist BS2000 Stan dard erfolgt eine Programmunterbrechung andernfalls erfolgt keine Programmunterbre chung und als Endergebnis wird eine echte Null erzeugt Das Zwischenergebnis wird ohne vorherige Normalisierung auf 6 bzw 14 Sedezimal stellen gek rzt und zusammen mit der zuvor ermittelten Charakteristik zum Endergebnis gemacht Exponenten berlauf tritt ein wenn die Charakteristik des Endergebnisses gr er als 127 wird Es erfolgt dann eine Programmunterbrechung Vorzeichen und Mantisse sind korrekt aber die Ergebnis Charakteristik en sind um 128 zu klein Exponenten Unterlauf kann nicht eintreten Anzeige O Zero Die Mantisse des Ergebnisses ist 0 das Vorzeichen ist positiv 1 Minus Das Ergebnis ist lt 0 2 Plus Das Ergebnis ist gt 0 3 Nicht verwendet 226 U3119 J Z125 2 Gleitpunktbefehle AU AUR AW AWR Programmunterbrechungen Art Adre umsetzungsfehler Adre fehler Exponenten berlauf Signifikanz Gewicht Ursachen AU AW Lesezugriff auf Operand2 unm glich falsche Gleitpunktregisterangabe oder D2 X2 B2 keine Doppel Wortgrenze Summen Charakteristik gt 127 Mantisse 0 Charakteristik 0 und Maskenbit f r Signifikanz 1 Programmierhinweise Die Vertauschung der beiden Operanden einer nicht normalisierenden Addition ndert in keinem Falle das Resultat Durch das BS2000 wird das Bit f r Signifikanz in der Programmaske mit 1 vorbe setzt so da im oben genannten Fal
106. bestimmte Adresse wird nicht als Datenadresse verwendet stattdes sen bilden die rechten 6 Bit dieser Adresse die Anzahl der Bin rstellen um die die Fest punktzahl nach rechts verschoben wird Diese Anzahl liegt im Bereich zwischen 0 und 634o Die h herwertigen Bin rstellen von D2 B2 werden ignoriert Der Inhalt der beiden Register R1 und R1 1 wird als 64 Bit lange Festpunktzahl mit Vorzeichen behandelt Das Vorzeichen an der Bitstelle 0 des geradzahligen Registers R1 bleibt unver ndert aber alle brigen 63 Bitstellen werden verschoben Links freiwer dende Bitstellen werden mit dem Wert des Vorzeichenbit gef llt rechts ber die Bitstelle 31 von R1 1 hinausgeschobene Bin rstellen gehen verloren Anzeige O Zero Verschobene Festpunktzahl 0 1 Minus Verschobene Festpunktzahl lt 0 Bit O von R1 1 2 Plus Verschobene Festpunktzahl gt 0 Bit O von R1 0 3 Nicht verwendet U3119 J Z125 2 Allgemeine Befehle SRDA Programmunterbrechungen Adre fehler X 5C R1 nicht geradzahlig Art Ursachen Programmierhinweise Wenn B2 0 ist bestimmt D2 allein die Verschiebeanzahl in diesem Fall darf die Angabe von B2 im Assemblerformat entfallen Wenn die Verschiebeanzahl 0 modulo 64 ist werden Ri und R1 1 nicht ver n dert aber es wird die Anzeige gesetzt Die Rechtsverschiebung von negativen Festpunktzahlen f hrt zur Abw rtsrundung auf die n chstniedrige negative Ganzzahl So ergibt z B die Zahl 1
107. byte wird einzeln zur Anfangsadresse der Umsetzungstabelle addiert Die Summe adressiert ein Byte Funktionsbyte der Umsetzungstabelle Wenn dieses Funk tionsbyte 00 ist wird der Befehl beendet andernfalls wird das n chste Argumentbyte bearbeitet Wenn alle Funktionsbyte der Umsetzungstabelle 00 sind wird der Befehl mit der Anzeige O Zero beendet Das erste Funktionsbyte das 00 ist beendet den Befehl und zwar mit der Anzeige 2 Plus wenn das zugeh rige Argumentbyte das letzte Byte des Zielfelds war andern falls mit der Anzeige 1 Minus Die Adresse des zugeh rigen Argumentbyte wird in das Mehrzweckregister 1 und das von Null verschiedene Funktionsbyte wird in das Mehr zweckregister 2 eingetragen Die Addition jedes Argumentbyte zur Anfangsadresse der Umsetzungstabelle erfolgt logisch wobei das Argumentbyte als vorzeichenlose 8 Bit Zahl aufgefa t wird die Summe ist je nach Adressierungsmodus entweder 24 Bit oder 31 Bit lang Weder die Umsetzungstabelle noch das Zielfeld werden ver ndert auch nicht bei ber lappung die zul ssig ist U3119 J Z125 2 Allgemeine Befehle TRT Die Mehrzweckregister 1 und 2 werden nur ver ndert wenn ein Funktionsbyte 00 auftritt Im 24 Bit Adressierungsmodus wird die 24 Bit lange Argumentbyte Adresse in die Bitstel len 8 bis 31 des Mehrzweckregisters 1 eingetragen und die Bitstellen 0 bis 7 werden nicht ver ndert im 31 Bit Adressierungsmodus wird die 31 Bit lange Argume
108. ch er setzt au erdem die Anzeige 0 Equal wodurch die Befehls folge verlassen wird Wenn aber zum Ausf hrungszeitpunkt von CS der Wert von SHAREWD nicht mehr mit dem Inhalt von R1 bereinstimmt erfolgt keine Speicher ung stattdessen wird der Inhalt des inzwischen ge nderten Hauptspeicherworts ins Register R1 geladen die Anzeige 1 Not Equal gesetzt und das Programmst ck wieder holt U3119 J Z125 2 71 CVB 72 Allgemeine Befehle Convert to Binary Funktion Der Befehl CVB konvertiert eine gepackte Dezimalzahl in eine 32 Bit lange Festpunkt zahl Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen R1 D2 X2 B2 D2 X2 B2 Doppelwortgrenze Maschinenformat 0 20 31 Beschreibung D2 X2 B2 mu eine genau 8 Byte lange gepackte Dezimalzahl in einem Doppelwort des Hauptspeichers adressieren Diese wird in eine 32 Bit lange Festpunktzahl mit Vor zeichen konvertiert und in das Mehrzweckregister R1 gespeichert Die zu konvertierende Dezimalzahl mu im Bereich 231 231 1 liegen d h mu minde stens 2147483648 und darf h chstens 2147483647 betragen Wenn diese Bedingung nicht erf llt ist wird die Konvertierung trotzdem ausgef hrt aber das Mehrzweckregister R1 enth lt nach der Befehlsausf hrung nur die niedrigstwertigen 32 Bit der Festpunkt zahl und es erfolgt au erdem eine Programmunterbrechung wegen Divisionsfehlers Die zu konvertierende Dezimalzahl wird auf korrektes
109. ch Operationscode R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 R2 283 Befehle nach Operationscode 284 Op Code w Ne DW WWW WW ormona UAA So So Son Sn So San Sn Sa Sr Sn SE SS oHHITNUTPOCcvOoSINAUT PWMNH Mnemo Bef L nge Bef Code Typ in Byte RB art CER AER SER ER DER AUR SUR STH LA STC IG EX BAL BCT BC LH CH AH SH MH BAS CVD CVB LAE le O0 DORUPOHKZunun gt UKRunmp narxonn SOIFI OA EE Uaa e ELO A w E a e d zx RR RR RR RR RR RR RR RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX RX Ebob innt t RB RBB RBB RR RR RB RB RR a a a RR RB RR BR RB RBB a RB RR RR N A ON Glp Glp Glp Glp Glp Glp Glp Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg ESA Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Allg Glp Glp Glp Glp Glp Glp Glp Glp Glp Glp Glp Glp Glp Glp Glp Glp Glp Assembler format R1 R2 R1 R2 R1 R2 R1 R2 R1 R2 R1 R2 R1 R2 R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X 1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X R1 D2 X
110. chen 12 15 siehe Programmierhinweise Adre fehler Monitor Unterbrechung Programmierhinweise Der Befehl MC wird vom BS2000 nicht unterst tzt Wenn er dennoch aufgerufen wird wirkt er wie eine NOP Operation U3119 J Z125 2 Allgemeine Befehle MH Multiply Halfword Funktion Der Befehl MH multipliziert eine 32 Bit lange Festpunktzahl mit einer 16 Bit langen Fest punktzahl vorzeichengerecht und speichert die niedrigstwertigen 32 Bin rstellen des Pro dukts Die Anzeige wird nicht ver ndert Assemblerformat R1 D2 X2 B2 D2 X2 B2 Halbwortgrenze Maschinenformat 0 Beschreibung Der Multiplikand wird dem Mehrzweckregister R1 der Multiplikator dem mit D2 X2 B2 adressierten Halbwort des Hauptspeichers entnommen Die niedrigstwertigen 32 Bin r stellen des Produkts werden in das Mehrzweckregister R1 gespeichert und ersetzen den Multiplikanden Der Multiplikand wird als 32 Bit lange der Multiplikator als 16 Bit lange Festpunktzahl mit dem Vorzeichen an der h chstwertigen Bitstelle behandelt Das Produkt ist eine 48 Bit lange Festpunktzahl von der nur die rechten 32 Bin rstellen gespeichert werden Die linken 16 Bin rstellen einschlie lich des Vorzeichenbit gehen verloren Es erfolgt kein Test daraufhin ob die verlorenen Bin rstellen gleich sind dem Wert des h chstwer tigen Bit des gespeicherten Ergebnisses Das Vorzeichen des Produkts wird nach den blichen algebraischen Regeln ermittelt Anzei
111. cherbereich l nger als 4 bzw 8 Byte ist k nnen die Befehle CS und CDS verwendet werden Dazu legt man gew hnlich ein den Speicherbereich stellvertretendes Wort oder Doppelwort an in welchem man die m glichen Zust nde des Speicherbereichs festh lt Mittels CS oder CDS wird dann statt des eigentlichen Hauptspeicherbereichs nur das Zustandswort verwaltet Die Befehle CS und CDS sollten nur zur Koordinierung von Programmen im selben oder in verschiedenen Zentraleinheiten verwendet werden und nicht zum Ersatz einer Befehlsfolge aus CL und ST Befehlen CS und CDS sind n mlich zeitaufwen dig und blockieren die Befehlsausf hrung in anderen Zentraleinheiten 70 U3119 J Z125 2 Allgemeine Befehle CS CDS Beispiel Eine sichere Methode zum Update eines gemeinsam genutzten Hauptspeicherworts SHAREWD mittels CS besteht in folgender Prinzip Befehlsfolge UPDATE L R1 SHAREWD AGAIN LR R3 R1 lt ermitteln Updatewert in R3 R1 mu unver ndert bleiben gt cS R1 R3 SHAREWD BNE AGAIN Die Befehlsfolge beginnt mit dem Laden des Anfangswerts von SHAREWD in das Mehr zweckregister R1 dort mu es bis zum Befehl CS unver ndert bleiben Der Update Wert von SHAREWD wird in einem anderen Register R3 hergestellt Die abschlie Bende Speicherung erfolgt durch den Befehl CS der zun chst pr ft ob der momentane Wert von SHAREWD noch gleich ist seinem Anfangswert in R1 Nur wenn dies der Fall ist speichert CS tats chli
112. choben Rechts freiwerdene Bitstellen werden mit O gef llt links ber die Bitstelle 0 hinausgeschobene Bitstellen gehen verloren Anzeige Nicht ver ndert U3119 J Z125 2 Allgemeine Befehle SLDL Programmunterbrechungen Art Gewicht Ursachen Adre fehler X 5C R1 nicht geradzahlig Programmierhinweise Wenn B2 0 ist bestimmt D2 allein die Verschiebeanzahl in diesem Fall darf die Angabe von B2 im Assemblerformat entfallen Wenn die Verschiebeanzahl 0 modulo 64 ist werden R1 und R1 1 und auch die Anzeige nicht ver ndert Die Verschiebung um eine variable Anzahl von Bitstellen wird erreicht indem man die Variable in das Mehrzweckregister B2 l dt Beispiele Die folgenden Beispielbefehle ergeben Register 0 1 vorher Beispielbefehl Register 0 1 nachher Anzeige 0 0 0 01 unver ndert He Aal 1 unver ndert 04 1 1 1 unver ndert 0 021 1 unver ndert 10 0 0 0 unver ndert 10 0 0 0 unver ndert Der Leser m ge diese Beispiele mit denen bei der Beschreibung des Befehls SLDA ver gleichen Hier tritt in keinem Fall Festpunkt berlauf auf Das letzte Beispiel zeigt wie bei SLDA einen Fall ohne Verschiebung von der Verschie bezahl werden nur die niedrigstwertigen 6 Bit verwendet und diese ergeben bei der Zahl 64 den Wert 0 Die Registerinhalte und die Anzeige bleiben unver ndert U3119 J Z125 2 143 SLL 144 Allgemeine Befehle Shift Left Single Logical Fun
113. chstwertige Bit des ersten eingesetzten Byte 0 aber mindestens ein weiteres Bit ist 1 3 Nicht verwendet U3119 J Z125 2 83 ICM 84 Allgemeine Befehle Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Lesezugriff auf Operand2 unm glich auch wenn M3 046 ist Programmierhinweise Die L nge in Byte des Hauptspeicherfelds ist gleich der Anzahl der Einsen in der Maske Bei Verwendung einer Maske aus lauter Einsen B 1111 bestehen folgende Unter schiede zum Befehl L Das Hauptspeicherfeld braucht nicht an einer Wortgrenze ausgerichtet zu sein Die Anzeige wird gesetzt Der Befehl L hat RX Format der Befehl ICM RS Format Der Befehl L ist schneller Beispiele Folgende Beispiele ergeben ame Operanden Beispiell 5 B 1111 FBLENGTH FBLENGTH Su FL3 20000 Beispiel2 5 B 0001 X 00 Im Beispiel1 werden 4 Byte in das Mehrzweckregister 5 eingesetzt in Byte 0 ein Leerzei chen und in die Byte 1 bis 3 bin r die Zahl 20000 Da das Leerzeichen das Coding X40 hat also das erste eingesetzte Bit 0 ist wird die Anzeige auf 2 Plus gesetzt Im Beispiel2 wird das niedrigstwertige Byte des Mehrzweckregisters 5 durch ein Byte des Hauptspeichers ersetzt Im Gegensatz zum Befehl IC wird hier aber die Anzeige gesetzt n mlich auf O Zero U3119 J Z125 2 Allgemeine Befehle IPM Insert Program Mask Funktion Der Befehl IPM bertr
114. d Store Subtract Unnormalized Inhalt 150 152 154 156 158 160 162 164 165 167 170 173 175 177 181 181 185 188 190 193 201 203 206 210 213 213 221 225 228 230 233 236 238 240 242 244 246 248 252 256 257 Inhalt ESA Befehle berblick Copy Access Register Extract Access Register Insert Address Space Control Load Address Extended Load Access Multiple Set Address Space Control Set Access Register Store Access Multiple Test Access Register Anhang e EBCDIC Tabelle SRV 10 i f Befehle nach mnemotechnischem Code Befehle nach Operationscode i Erweiterter mnemotechnischer Operationscode Zweierpotenzen Zugriff auf gemeinsam benutzte Daten i in Multiprozessor Anlagen Setzen von Sperren R cksetzen von Sperren Abfragen von Sperren Beispiele Literatur Bestellen von Hantdhdchern Stichw rter 261 261 263 264 265 266 268 270 272 273 275 277 278 279 283 287 288 289 290 290 291 292 301 302 303 U3119 J Z125 2 Assemblerbefehle BS2000 0SD Sprachbeschreibung Zielgruppe BS2000 0SD Assembler Programmierer Inhalt Beschrieben sind alle Assemblerbefehle nicht privilegiert der vom BS2000 OSD unter st tzten Zentraleinheiten in alphabetischer Reihenfolge Bei jedem Befehl sind dargestellt seine Funktion sein Assemblerformat d h seine Schreibweise in Assemblersprache sein Maschinenformat d h seine Darstellung in der Zentrale
115. d das h chstwertige Byte des Sendefelds das Byte 0 Das Empfangsfeld wird links mit O aufgef llt wenn es l nger ist als das Sendefeld wenn das Empfangsfeld zu kurz ist um alle Halbbyte des Sendefelds aufzunehmen gehen die h chstwertigen Halbbyte des Sendefelds verloren Das Empfangsfeld darf sich mit dem Sendefeld berlappen Die bertragung wird so ausgef hrt als werde jedes Byte des Empfangsfelds unmittelbar dann gespeichert wenn seine beiden Halbbyte ermittelt sind Anzeige Nicht ver ndert Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Lese Schreibzugriff auf Operandl oder Lesezugriff auf Operand2 unm glich U3119 J Z125 2 117 MVO 118 Allgemeine Befehle Programmierhinweise Der Befehl MVO kann dazu benutzt werden um eine gepackte Dezimalzahl um eine ungerade Anzahl von Dezimalstellen nach rechts zu verschieben siehe Beispiel Die Dezimalzahl wird aber nicht auf korrektes gepacktes Format gepr ft Beispiel MVO FIELD FIELD L FIELD 2 Obiger Befehl verschiebt den Inhalt von FIELD um 3 Halbbyte nach rechts aber l t das rechteste Byte von FIELD unver ndert Zum Beispiel ndert sich FIELD vorher X ABCDEF zu FIELD nachher X 000ABF Wenn der Inhalt von FIELD eine gepackte Dezimalzahl ist ist das Ergebnis gleichbedeu tend mit deren Ganzzahl Division durch 1000 U3119 J Z125 2 Allgemeine Befehle MVZ Move Zones Funktion Der Befehl
116. de Zugriffe von ande ren Prozessoren gesch tzt sind NI NC Ol OC XI XC U3119 J Z125 2 7 6 3 U3119 J Z125 2 Gemeinsam benutzte Daten in Multiprozessor Anlagen Abfragen von Sperren Zum Abfragen von Sperren sind auf Anlagen gt 7 590 folgende Befehle geeignet f rein Byte die Befehle CLI und IC f rein Wort die Befehle C CL CLC L MVC f r ein Doppelwort die Befehle LM LD CLC MVC Wie bereits weiter vorn erw hnt sind auf anderen Rechnern die Befehle au er dem CLI zu wiederholen Bedingungen bei Verwendung des Befehls CLC sind die beiden Operanden d rfen sich nicht berlappen und beide m ssen auf Wort oder Doppelwort Grenze entsprechend ihrer L nge ausgerichtet sein Nicht geeignet zum Abfragen von Sperren sind die nachfolgend aufgef hrten Befehle bei denen zwei Speicherzugriffe notwendig sind erst Lesen dann Schreiben weil sie nicht gegen dazwischenkommende Zugriffe von anderen Prozessoren gesch tzt sind NI NC Ol OC XI XC ZAP 291 Gemeinsam benutzte Daten in Multiprozessor Anlagen 7 6 4 Beispiele Z hler Sperren Beispiel 1 Hochz hlen L Rold SPERRE CYCLE LR Rnew Rold AH Rnew H 1 WHEN EQ cs Rold Rnew SPERRE BREAK L BEND Beispiel 2 Bedingtes Hochz hlen CYCLE L Rold SPERRE WHEN GZ LTR Rnew Rold CAND EQ AH Rnew H 1 cs Rold Rnew SPERRE BREAK IF LE LTR Rold Rold THEN PASS NAME wait BEND BEND Falsc
117. e 0 kein bertrag 1 Minus Summe 0 kein bertrag 2 Plus Summe 0 bertrag 3 Overflow Summe 0 bertrag U3119 J Z125 2 31 AL ALR Allgemeine Befehle Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 AL Lesezugriff auf Operand2 unm glich Adre fehler KOGE AL D2 X2 B2 keine Wortgrenze Programmierhinweise Die Anzeige 0 Zero wird nur dann gesetzt wenn beide Operanden 0 sind Der Befehl AL kann Anwendung finden bei der vorzeichengerechten Addition von Festpunktzahlen die l nger sind als 32 Bit Dabei verwendet man AL Befehle zur Addition der niedrigstwertigen Wortpaare und benutzt den Befehl A zur Addition des h chstwertigen Wortpaars bei einem bertrag bei der Addition eines niedrigstwerti gen Wortpaars mu dann die Zahl 1 auf die Summe des n chsth heren Wortpaars addiert werden siehe Beispiel2 Beispiele Beispiell 15 F 1 15 F 1 Register 15 0 Anzeige 2 Plus Beispiel2 0 1 FPNOl Addition von zwei 64 Bit langen LOWADD 1 FPNO2 4 Festpunktzahlen 12 HIGHADD 0 H 1 berlauf im rechten Teil HIGHADD 0 FPNO2 Das Beispiel2 zeigt die vorzeichengerechte Addition von zwei 64 Bit langen Festpunkt zahlen FPNO1 und FPNO2 Das niederwertige Wortpaar wird mittels AL und das h her wertige Wortpaar wird mittels A addiert Im Falle von bertrag bei der Addition des nie derwertigen Wortpaars mu zur Summe des h herwertigen Wortpaars noch
118. e LTER bzw lange LTDR Gleitpunktzahl im Gleitpunktregister R2 wird unver ndert in das Gleitpunktregister R1 bertragen Die Anzeige wird gem dem Wert der bertragenen Zahl gesetzt Es findet keine Normalisierung statt Anzeige O Zero Mantisse des Ergebnisses ist 0 1 Minus Ergebnis ist lt 0 2 Plus Ergebnis ist gt 0 3 Nicht verwendet U3119 J Z125 2 Gleitpunktbefehle LTDR LTER Programmunterbrechungen Art Gewicht Ursachen Adre fehler xX756 falsche Gleitpunktregisterangabe Programmierhinweise R1 darf R2 sein Der Befehl LTER bertr gt und testet nur die linken 32 Bit des Gleitpunktregisters R2 und l t die rechten 32 Bit des Gleitpunkregisters R1 unver ndert Demzufolge kann es geschehen da ein LTER Gleichheit anzeigt wo ein LTDR dies nicht tut U3119 J Z125 2 247 MD MDR ME MER MXD MXDR MXR Gleitpunktbefehle 248 Multiply Funktion Die Befehle MER ME MDR MD MXDR MXD und MXR multiplizieren zwei Gleitpunkt zahlen Das normalisierte Produkt ersetzt den ersten Operanden Die Anzeige wird nicht ver ndert Assemblerformate x kurzer Multiplikand und Multiplikator langes Produkt ER R1 R2 R1 R2 0 2 4 oder 6 E R1 D2 X2 B2 R1 0 2 4 oder 6 und langer Multiplikand und Multiplikator langes Produkt DR R1 R2 R1 R2 0 2 4 oder 6 D R1 D2 X2 B2 R1 0 2 4 oder 6 und X langer Multiplikand und Multiplikator erweitertes Produkt
119. e Adres sen ihrer niedrigstwertigen Byte gleich sein D1 B1 L1 1 D2 B2 L2 1 andernfalls erfolgt eine Programmunterbrechung wegen Datenfehlers au erdem mu L1 gt L2 also D1 B1 lt D2 B2 gelten und die oberen L2 Byte des Multiplikanden m ssen 00 sein siehe Beispiel Ein Produkt 0 kann ein negatives Vorzeichen haben Das Resultat eines MP Befehls hat stets mindestens eine f hrende Null 046 Das Resultat eines MP Befehls kann dem Betrage nach h chstens 1030 2 10 5 1 also h chstens 29 stellig werden Beispiele Die folgenden Beispiele von MP Befehlen ergeben folgende Ergebnisse FIELD vorher Beispiel Befehl DFIELD nachher 12 9 LD P 2 PL2 18 L2 9 LD P 0 PL2 0 L2 9 LD DFIELD 1 1 PL2 81 Man beachte da anstelle des dritten Beispiels der Befehl MP DFIELD DFIELD nicht korrekt w re weil die Eingangsbedingung L2 lt L1 nicht erf llt ist U3119 J Z125 2 Dezimalbefehle SP Subtract Decimal Funktion Der Befehl SP subtrahiert zwei gepackte Dezimalzahlen Die resultierende Differenz ersetzt den ersten Operanden Die Anzeige wird gem dem Wert der Differenz gesetzt Assemblerformat Maschinenformat 0 8 12 16 36 47 20 32 Beschreibung Die gepackte Dezimalzahl im Feld des zweiten Operanden D2 L2 B2 wird von der gepackten Dezimalzahl im Feld des ersten Operanden D1 L1 B1 vorzeichengerecht subtrahiert die gepackte Differenz ersetzt den ersten
120. e Anzeige wird gem dem Wert der bertragenen Festpunktzahl gesetzt Assemblerformat Name Operanden Bemerkungen Maschinenformat 0 Beschreibung Wenn die Festpunktzahl im Mehrzweckregister R2 positiv d h wenn ihre Bitstelle 0 0 ist so wird ihr Zweierkomplement in das Mehrzweckregister R1 bertragen andernfalls wird sie unver ndert bertragen Wenn die zu bertragende Festpunktzahl 0 ist wird auch die bertragene Zahl 0 gesetzt Anzeige O Zero Ergebnis 0 R2 ist ebenfalls 0 1 Minus Ergebnis lt 0 2 Nicht verwendet 3 Nicht verwendet Programmunterbrechungen Keine Programmierhinweise R1 darf R2 sein U3119 J Z125 2 97 LNR 98 Beispiele Beispiell 0 F 1 0 0 Beispiel2 53 6 5 k Register Register Anzeige Register Register Anzeige Allgemeine Befehle 0 vorher 1 0 nachher 1 1 Minus U3119 J Z125 2 Allgemeine Befehle LPR Load Positive Funktion Der Befehl LPR bertr gt den Betrag einer 32 Bit langen Festpunktzahl aus einem Mehr zweckregister in ein Mehrzweckregister Die Anzeige wird gem dem Wert der bertragenen Festpunktzahl gesetzt Assemblerformat Name Operanden Bemerkungen Maschinenformat 0 Beschreibung Wenn die Festpunktzahl im Mehrzweckregister R2 negativ d h ihre Bitstelle 0 den Wert 1 hat so wird ihr Zweierkomplement in das Mehrzweckregister R1 bertragen andern falls wird sie unver ndert bert
121. e D2 B2 verzweigt wenn die Summe gr er bei BXH bzw gleich oder kleiner bei BXLE ist als der Inhalt des Vergleichsregisters andernfalls wird nicht verzweigt und mit dem n chsten Befehl fortgefahren Der Vergleich wird durchgef hrt und die Sprungadresse D2 B2 wird ermittelt bevor das Mehrzweckregister R1 ver ndert wird U3119 J Z125 2 49 BXH BXLE Allgemeine Befehle Anzeige Nicht ver ndert Programmunterbrechungen Keine beim Befehl selbst Wenn allerdings tats chlich verzweigt wird und die Zieladresse keine Halbwortadresse ist oder auf sie nicht zugegriffen werden kann erfolgt eine entsprechende Programmun terbrechung mit dem Gewicht 5C bzw 48 an der Zieladresse Programmierhinweise 50 Wenn R3 nicht geradzahlig ist dient sein Inhalt sowohl als Inkrementwert f r das Mehrzweckregister R1 als auch als Vergleichswert F r R1 und R3 darf das Mehrzweckregister O verwendet werden Wenn R1 R3 ist wird das Inkrement verdoppelt Wenn R1 au erdem ungeradzahlig ist ist zu ber cksichtigen da der Vergleich vor der Ver nderung des Mehrzweckre gisters R1 erfolgt da also der doppelte R1 Inhalt mit dem einfachen R1 Inhalt vergli chen wird und erst anschlie end der doppelte R1 Inhalt den einfachen R1 Inhalt ersetzt Die Befehle BXH und BXLE leisten gute Dienste bei der Programmierung von for Schleifen bei denen eine Laufvariable von einem Anfangswert ber ein konstantes Inkrement bzw Dekreme
122. e Suffixe 1 2 und 3 voneinander unterschieden Befehlsoperanden k nnen entweder direkt im Befehl oder getrennt vom Befehl entweder in einem Mehrzweck oder Gleitpunkt Register oder im Hauptspeicher gespeichert sein Davon abh ngig spricht man von Direktoperanden Register Operanden oder Hauptspeicher Operanden Ein Direktoperand wird im Befehl in einem M oder I Feld als Bitfeld dargestellt Ein Register Operand wird durch die Angabe der entsprechenden 4 Bit langen Regi sternummer in einem R Feld bestimmt Durch den Befehl ist dabei festgelegt ob es sich um ein Mehrzweckregister ein Zugriffsregister oder ein Gleitpunktregister handelt U3119 J Z125 2 Grundlagen U3119 J Z125 2 Befehlsaufbau Ein Hauptspeicher Operand wird durch die Adresse seines h chstwertigen Byte und durch seine L nge in Byte bestimmt Seine Adresse ergibt sich entweder aus einer Adre berechnung oder wird als fertige Adresse einem Mehrzweckregister entnommen Im Falle einer Adre berechnung besteht diese aus der logischen Addition einer Distanza dresse direkt bestimmt in einem D Feld und dem Inhalt von einem oder zwei Mehr zweckregistern deren Registernummer in einem B und einem X Feld bestimmt sind siehe oben Adre berechnung Der Assembler 1 errechnet bei sog symbolischen Adressen von Befehlen und Daten selbst ndig die Adre komponenten B und D Die L nge von Hauptspeicher Operanden wird entweder implizit durch den Befehl oder expl
123. eachte den Unterschied zwischen BCR und BC bei BCR wird die Sprungadresse durch den Inhalt bei BC jedoch durch die Adresse des zweiten Operanden bestimmt 43 BC BCR Allgemeine Befehle 44 Beispiel Beispiell k Beispiel2 Beispiel3 k k Operanden 4 5 7 AGAIN SEMAPHOR X 80 ON 14 Sprung bei Anzeige 0 durch Maske 719 0111 Erweiterter mnemotechnischer Operationscode BO bewirkt Sprung bei Anzeige 3 durch Maske 119 0001 Erweiterter mnemotechnischer Operationscode BR bewirkt unbedingten Sprung durch Maske 1519 1111 5 Sprungziel Adresse im Register 14 U3119 J Z125 2 Allgemeine Befehle BCT BCTR Branch on Count Funktion Die Befehle BCTR und BCT vermindern den Inhalt eines angegebenen Mehrzweckregi sters um Eins und verzweigen an eine angegebene Adresse wenn der resultierende Registerinhalt lt 0 ist Die Anzeige wird nicht ver ndert Assemblerformate BCTR R1 R2 BCT R1 D2 X2 B2 Maschinenformate 0 Beschreibung Von der Bin rzahl im Mehrzweckregister R1 wird die Zahl 1 subtrahiert wobei ein etwai ger bertrag ber die h chstwertige Bitstelle ignoriert wird Wenn das Resultat 0 ist verzweigt der Befehl BCTR an die im Mehrzweckregister R2 enthaltene Adresse und der Befehl BCR an die Adresse D2 X2 B2 Diese Adresse ist je nach Adressierungsmodus 24 Bit oder 31 Bit lang Wenn das Resultat 0 ist wird nicht verzweigt sonde
124. efehle TR Translate Funktion Der Befehl TR setzt die Byte eines Zielfeldes gem einer Umsetzungstabelle um Die Anzeige wird nicht ver ndert Assemblerformat Maschinenformat 0 8 20 32 36 47 Beschreibung Mit D1 B1 wird das Zielfeld der L nge L Byte adressiert mit D2 B2 die Umset zungstabelle Das Zielfeld enth lt vor der Befehlsausf hrung die umzusetzenden und nach der Befehlsausf hrung die umgesetzten Byte Das Zielfeld wird von links nach rechts byteweise verarbeitet Jedes Byte des Zielfelds Argumentbyte wird einzeln zur Anfangsadresse der Umsetzungstabelle addiert Die Summe adressiert ein Byte Funktionsbyte der Umsetzungstabelle Das Funktionsbyte ersetzt dann das urspr ngliche Argumentbyte im Zielfeld Der Befehl wird beendet wenn alle Argumentbyte durch Funktionsbyte ersetzt sind Die Addition jedes Argument bytes zur Anfangsadresse der Umsetzungstabelle erfolgt logisch wobei das Argument byte als vorzeichenlose 8 Bit Zahl aufgefa t wird die Summe ist je nach Adressie rungsmodus entweder 24 Bit oder 31 Bit lang Die Umsetzungstabelle wird nicht ver ndert es sei denn sie berlappt sich mit dem Zielfeld Bei berlappung erfolgt keine Anzeige aber i a sind fr here Byte Umsetzungen durch sp tere wieder ver ndert Anzeige Nicht ver ndert U3119 J Z125 2 167 TR 168 Allgemeine Befehle Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4
125. ehl SLDA verschiebt eine 64 Bit lange Festpunktzahl in einem Mehrzweckregi ster Paar vorzeichengerecht um eine angegebene Anzahl von Bin rstellen nach links Die Anzeige wird gem dem Wert des Ergebnisses gesetzt Assemblerformate SLDA R1 D2 B2 R1 geradzahlig oder auch SLDA Rl lt anzahl gt R1 geradzahlig Maschinenformat 0 8 12 16 20 31 Beschreibung Das R1 Feld des Befehls bestimmt ein Paar von Mehrzweckregistern bestehend aus den Registern Ri und R1 1 Ri mu geradzahlig sein andernfalls erfolgt eine Program munterbrechung wegen Adre fehlers Die Bitstellen 12 bis 15 des Befehls werden ignoriert Die durch D2 B2 bestimmte Adresse wird nicht als Datenadresse verwendet stattdes sen bilden die rechten 6 Bit dieser Adresse die Anzahl der Bin rstellen um die die Fest punktzahl nach links verschoben wird Diese Anzahl liegt im Bereich zwischen 0 und 634o Die h herwertigen Bin rstellen von D2 B2 werden ignoriert Der Inhalt des Mehrzweckregisterpaars R1 und R1 1 wird als 64 lange Festpunktzahl mit Vorzeichen behandelt Das Vorzeichen an der Bitstelle 0 des geradzahligen Regi sters R1 bleibt unver ndert aber alle brigen 63 Bitstellen werden verschoben Rechts freiwerdene Bitstellen werden mit O gef llt links ber die Bitstelle 1 von R1 hinausge schobene Bitstellen gehen verloren Wenn ein oder mehrere vom Vorzeichenbit verschiedene Bit ber die Bitstelle 1 des Registers R1 hinausgeschoben werden
126. eils wer den von den Befehlen die erweiterte Gleitpunktzahlen verarbeiten ignoriert allerdings wird von den Befehlen die erweiterte Gleitpunktzahlen erzeugen auch im unteren Teil ein Vorzeichen und eine Charakteristik erzeugt das Vorzeichen ist gleich dem Vorzei chen im oberen Teil die Charakteristik ist um 14 kleiner als die des oberen Teils Wenn eine erweiterte Gleitpunktzahl in einem Gleitpunktregister Paar erzeugt wird erh lt der untere Teil dasselbe Vorzeichen wie der obere Teil und seine Charakteristik wird um 14 niedriger gesetzt als die des oberen Teils es sei denn da eine echte Null erzeugt wurde Wenn durch die Subtraktion von 14 die Charakteristik des unteren Teils kleiner als Null wird wird sie auf einen um 128 zu gro en Wert gesetzt Der Zustand Exponen ten Unterlauf tritt aber nur ein wenn auch die Charakteristik des oberen Teils unterl uft Wenn eine erweiterte Gleitpunktzahl zu einer echten Null gemacht wird werden sowohl der obere wie der untere Teil zu einer echten Null gemacht Gleitpunktregister Es gibt 4 Gleitpunktregister mit den Nummern Adressen 0 2 4 und 6 Diese Gleitpunk tregister existieren neben den Mehrzweckregistern die bei vielen der brigen Befehle und bei einigen Gleitpunktbefehlen zur Basis und Index Adressierung verwendet wer den Jedes Gleitpunktregister ist 64 Bit lang Kurze und lange Gleitpunktzahlen passen in ein einzelnes Gleitpunktregister erweiterte Gleitpunktzahlen ben
127. elle ist durch sein sedezimales quivalent repr sen tiert dio d d 0 1 9 und bildet jeweils das rechte Halbbyte Das linke Halb byte die Zone der ersten L 1 Byte ist konstant F das linke Halbbyte des letzten L ten Byte enth lt das Vorzeichen Ein positives Vorzeichen wird durch die Sedezimalwerte A oder C oder E oder F46 bestimmt ein negatives Vorzeichen durch die Sedezimalwerte B oder D46 Ein L Byte langes entpacktes Format kann eine bis zu L stellige Dezimalzahl aufneh men wobei die linken Byte den Wert FO enthalten wenn die Dezimalzahl weniger als L Dezimalstellen umfa t Die maximale L nge einer Dezimalzahl des entpackten Formats betr gt 16 Byte so da bis zu 16 stellige Dezimalzahlen in diesem Format dargestellt werden k nnen Beispiele Dezimalzahl entpacktes Format F1 A2 oder F1 C2 2 Byte oder F1 E2 L oder F1 F2 L 1 Byte B5 oder D5 E Im Assembler 1 wird das entpackte Format einer Dezimalzahl durch den Konstanten typ Z erzeugt wobei zur Vorzeichendarstellung die Sedezimalwerte C f r plus und D46 f r minus eingesetzt werden Z 12 oder Z 12 definieren beide je 2 Byte mit dem Inhalt F1 C2 und Z 5 definiert 1 Byte mit dem Inhalt D5 Man kann die Bestim mung der L nge einer Dezimalzahl dem Assembler berlassen wie in den gerade gezeigten Beispielen oder eine explizite L nge angeben ZL3 12 definiert 3 Byte mit dem Inha
128. ellt werden soll So soll beispielsweise der ACCOUNT Wert P 123 45 zu 123 45 der Wert PL3 12 zu __ 0 12 und der Wert PL3 0 zu __ _0 00 aufbereitet werden Die Befehlsfolge l dt vor EDMK das Mehrzweckregister 1 vorsorglich mit der Adresse des Zeichens das dem Signifikanzstarter X 21 in der Maske folgt Wenn sich die erste Nicht Null in ACOUNT rechts vom Signifikanzstarter befindet bleibt durch EDMK das Register 1 unver ndert andernfalls tr gt EDMK deren Adresse ins Register 1 ein In bei den F llen enth lt nach EDMK das Register 1 die Adresse der ersten gezonten Ziffer und folglich zeigt der mittels BCTR 1 0 um Eins reduzierte Register 1 Inhalt auf die Dezi malstelle wo das gleitende oder oder im Falle 0 nichts hingeh rt U3119 J Z125 2 Dezimalbefehle MP Multiply Decimal Funktion Der Befehl MP multipliziert vorzeichengerecht zwei gepackte Dezimalzahlen Das Pro dukt ersetzt den ersten Operanden Die Anzeige wird nicht ver ndert Assemblerformat L1 B1 D2 12 B2 L2 lt L1 lt 16 und 1 lt L2 lt Min 8 L1 1 Maschinenformat 0 8 12 16 36 47 20 32 Beschreibung Der gepackte Multiplikator wird mit dem gepackten Multiplikanden vorzeichengerecht multipliziert Das gepackte Produkt ersetzt den Multiplikanden Der Multiplikand und das Produkt sind mit D1 B1 der Multiplikator ist mit D2 B2 im Hauptspeicher adressiert Die L nge des Multiplikators L2 mu mindestens
129. en bei der die Differenz nicht abgespeichert wird Die Anzeige wird auf 0 Equal ge setzt wenn beide Operanden einschlie lich Schutzziffer gleich sind und auf 1 Low bzw 2 High gesetzt wenn der erste Operand kleiner bzw gr er als der zweite ist Exponenten Unterlauf Exponenten berlauf und Signifikanz k nnen nicht eintreten U3119 J Z125 2 Gleitpunktbefehle CD CDR CE CER Anzeige 0 Equal Der Operand1 ist einschlie lich Schutzziffer Operand2 1 Low Der Operand1 ist lt Operand2 2 High Der Operand1 ist gt Operand2 3 Overflow Nicht verwendet Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 CE CD Lesezugriff auf Operand2 unm glich Adre fehler XrICH falsche Gleitpunktregisterangabe oder D2 X2 B2 keine Doppel Wortgrenze Programmierhinweise Zwei Operanden die beide die Mantisse 0 haben erbringen die Anzeige 0 Equal auch wenn sie unterschiedliche Vorzeichen oder Charakteristiken haben Es ist noch keine hinreichende Bedingung f r Ungleichheit wenn die Charakteristi ken der zwei Operanden verschieden sind Die Befehle CE und CER vergleichen nur die linken 32 Bit ihrer Operanden deshalb ist es m glich da sie Gleichheit anzeigen wo CD und CDR dies nicht tun Es gibt keinen Befehl zum Vergleich von zwei Gleitpunktoperanden des erweiterten Formats Beispiel Name Operanden OF FLNOL x 48001000 16 0 FLNO2 x 47010001 16 16 6 F
130. en 0 bis 15 des Mehrzweckregisters R2 werden zur Zeit BS2000 2 V11 ignoriert Die Bitstellen 16 bis 31 des Registers werden ignoriert Die Bitstellen 16 bis 23 des Befehls werden ignoriert U3119 J Z125 2 275 TAR 276 ESA Befehle Anzeige 0 ALET access list entry token ist X 00000000 1 ALET verursacht keine Ausnahmebedingungen in der ART access register trans lation 2 ALET verursacht keine Ausnahmebedingungen in der ART 3 ALET verursacht Ausnahmebedingungen in der ART Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 48 Special Operation x 54 ESA Funktionen nicht verf gbar Exception U3119 J Z125 2 ESA Befehle 7 Anhang U3119 J Z125 2 TAR 277 EBCDIC EBCDIC Tabelle SRV 10 7 1 EBCDIC SRV 10 Siemens Referenz Version des 8 Bit Codes Zone A Ziffer B BBEBBBBEBBBEBHEHHENEN BREBBBBEBBEBHEHEHEEN el e 1 oleTele I TI I 1 I ele slelelel e I TI I EEBHBEBBBBEBEHEBEBNHE e lefele eee e lefele l lel teel ea a e e ees a e ebie el e ee ee TT eee Ss Au vV un D sr sr m mM O O V D a H A H N ft O 1 vo N a O un Q O F Hm a H H m gt 4 N mM o zZ Sr mM N 4 ar O G O O 4 a lt un un un un H Q Q Q A 2 O Fl H H H H H H N m mi 4 oj v 1N a H fee t O ea ea a a a O H Z fa E H Fu a Fu Fu Fu un un BENBBHBEBBBBBBBEBE Die Steuerzeichen SI und SO entfallen voraus
131. en Byte von links nach rechts in beiden Operanden Jeder Bitwert 1 in der Maske w hlt das entsprechende Bit im Hauptspeicherbyte aus und testet es Wenn alle getesteten Bit 0 sind wird die Anzeige auf 0 Zero gesetzt wenn sie alle 1 sind wird die Anzeige auf 3 Ones ge setzt und wenn unter den getesteten Bit sowohl solche mit dem Wert 0 als auch solche mit dem Wert 1 vorkommen wird die Anzeige auf 1 Mixed gesetzt Anzeige O Zeroes Alle getesteten Bit sind 0 1 Mixed Die getesteten Bit sind weder alle 0 noch alle 1 2 Nicht verwendet 3 Ones Alle getesteten Bit sind 1 Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Lesezugriff auf Operandl unm glich U3119 J Z125 2 165 TM 166 Allgemeine Befehle Programmierhinweise Der Assembler 1 verf gt ber erweiterte mnemotechnische Operationscodes f r Sprungbefehle nach dem Befehl TM BZ oder BRZ Branch when Zeroes zur Abfrage auf reines 0 Bitmuster BO oder BRO Branch when Ones zur Abfrage auf reines 1 Bitmuster BM oder BRM Branch when Mixed zur Abfrage auf gemischtes 0 1 Bitmuster Eine vollst ndige Liste aller erweiterten mnemotechnischen Operationscodes findet sich im Anhang Beispiele Die folgenden Beispielbefehle setzen folgende Anzeigen TESTBYTE Beispiell TESTBYTE X 87 BO BRO Beispiel2 TESTBYTE X 70 BZ BRZ Beispiel3 TESTBYTE X 88 BM BRM U3119 J Z125 2 Allgemeine B
132. en unterschieden n mlich absolute und reale Adres sen Sie werden aber nur unterhalb der Oberfl che der Assemblerbefehle verwendet und sind in einem Anwenderprogramm weder sichtbar noch zu beeinflussen Virtuelle Adressen werden vom Betriebssystem beim Laden eines Programms oder auf dessen explizite Anforderung f r ein Programm exklusiv bereitgestellt engl allocated Die Bereitstellung erfolgt in Vielfachen von Seiten Seiten sind Adre bereiche von 4096 212 Byte L nge deren Anfangsadresse durch 4096 ohne Rest teilbar ist Ein Pro gramm darf nur auf f r es bereitgestellte virtuelle Adressen lesend oder schreibend zugreifen Wenn es auf eine nicht bereitgestellte Adresse zuzugreifen versucht etwa auf grund eines Programmierfehlers dann wird dieser Zugriff nicht ausgef hrt und es erfolgt eine Programmunterbrechung wegen Adre umsetzungsfehlers siehe 2 4 24 Bit lange und 31 Bit lange Adressen Adressen treten in zwei L ngen auf als 24 Bit lange Adressen und als 31 Bit lange Adressen Eine 24 Bit lange Adresse kann 16 777 216 16 Mega Byte des virtuellen Adre raums identifizieren eine 31 Bit lange Adresse 2 147 483 648 2 Giga Byte Hauptspeicher Adressierung Grundlagen Sowohl 24 Bit lange wie auch 31 Bit lange Adressen werden als sog Adre wort rechts b ndig in 4 Byte langen Hauptspeicherbereichen oder Mehrzweckregistern bereitgestellt Wenn es nicht anders beschrieben ist werden dabei die 8 Bit links von einer 24
133. enn das Bit 26 0 ist wird nach links verschoben und zwar um so viele Dezimalstellen wie die Bin rzahl angibt Andernfalls wenn das h chstwertige Bit der Bin rzahl 1 ist wird nach rechts verschoben und zwar um so viele Dezimalstellen wie das Zweierkomplement der Bin r zahl angibt Sowohl bei Links wie bei Rechts Verschiebung bleibt die Vorzeichenstelle des ersten Operanden unver ndert Freiwerdende Ziffernpositionen werden mit 04 aufgef llt bei einer Links Verschiebung von rechts bei einer Rechts Verschiebung von links Wenn durch Links Verschiebung eine signifikante Dezimalziffer verloren geht tritt Dezi mal berlauf ein Die Anzeige wird dann auf 3 Overflow gesetzt und es erfolgt eine Pro grammunterbrechung wenn in der Programmaske das Bit f r den Dezimal berlauf 1 gesetzt ist BS2000 Standard Rundung Im Falle von Rechts Verschiebung wird abschlie end die verschobene Dezimalzahl gerundet Dazu wird die zuletzt hinausgeschobene Dezimalziffer zum Direktoperanden I3 Rundungsziffer addiert und eine etwaige berlauf Eins auf die verschobene Dezimal zahl gem deren Vorzeichen addiert Der erste Operand wird auf korrektes gepacktes Format gepr ft Der Wert von I3 mu eine korrekte Dezimalziffer d h lt 9 sein auch wenn nach links verschoben wird Im Fehlerfalle erfolgt eine Programmunterbrechung wegen Datenfehlers Anzeige 0 Zero Resultat ist 0 0 oder 0 1 Minus Resultat ist lt 0 2 Plus Resultat
134. ent ersetzt den ersten Operanden Es wird kein Divisionsrest erzeugt Zun chst werden Dividend und Divisor normalisiert so da sie keine f hrende Sedezi mal Nullen haben und es werden ihre Charakteristiken entsprechend angepa t vermin dert Die Normalisierung geschieht intern die Eingangs Operanden werden nicht ver n dert wenn der Dividend dem Betrage nach gr er ist als der Divisor wird der Divi dend um eine Sedezimalstelle nach rechts geschoben und seine Charakteristik um 1 erh ht Die Charakteristiken der beiden Operanden werden subtrahiert und die beiden normali sierten Mantissen werden dividiert Der resultierende Quotient bildet zusammen mit der Charakteristikdifferenz plus 64 und dem algebraisch ermittelten Vorzeichen ein Zwischen ergebnis Bei der Division werden alle Sedezimalziffern beider Mantissen ber cksichtigt Das Zwischenergebnis wird zuletzt bei DER und DE auf 6 Sedezimalstellen bei DDR und DD auf 14 Sedezimalstellen und bei DXR auf 28 Sedezimalstellen gek rzt und zum Endergebnis gemacht Dieses ist stets normalisiert Exponenten berlauf tritt ein wenn die Charakteristik des Endergebnisses gr er als 127 wird und seine Mantisse von Null verschieden ist Es erfolgt dann eine Program munterbrechung Mantisse und Vorzeichen sind korrekt aber die Charakteristik des Endergebnisses ist um 128 zu klein Bei DXR ist ggf auch die Charakteristik des unte ren Teils um 128 zu klein Exponenten Unterlauf tr
135. enz lt 0 2 Plus Differenz gt 0 3 Overflow berlauf U3119 J Z125 2 131 SH 132 Allgemeine Befehle Programmunterbrechungen Art Ursachen Lesezugriff auf Operand2 unm glich D2 X2 B2 keine Halbwortgrenze Differenz gt 27 1 oder lt 2 1 Adre umsetzungsfehler Adre fehler Festpunkt berlauf Programmierhinweise Festpunkt berlauf entsteht dann wenn ein Bin rstellen berlauf in die Vorzeichenstelle ungleich ist dem Bin rstellen berlauf aus der Vorzeichenstelle Im Register R1 hat dann das Resultat ein falsches Vorzeichen U3119 J Z125 2 Allgemeine Befehle SL SLR Subtract Logical Funktion Die Befehle SLR und SL subtrahieren zwei 32 Bit lange Bin rzahlen logisch Die Anzeige wird gem dem Wert der Differenz gesetzt Assemblerformate SLR R1 R2 SL R1 D2 X2 B2 D2 X2 B2 Wortgrenze Maschinenformate Beschreibung Durch den Befehl SLR wird der Inhalt des Mehrzweckregisters R2 durch den Befehl SL wird das mit D2 X2 B2 adressierte Wort des Hauptspeichers logisch vom Inhalt des Mehrzweckregisters R1 subtrahiert Beide Operanden werden als 32 Bit lange Bin rzahlen ohne Vorzeichen behandelt Die Differenz ist ebenfalls eine 32 Bit lange Bin rzahl ohne Vorzeichen und ersetzt den urspr nglichen Inhalt des Mehrzweckregisters R1 Alle 32 Bit beider Operanden sind an der Subtraktion beteiligt Ein bertrag ber die Bitstelle O hinaus wird in der Anzeige dargestellt Anze
136. er AR Modus access register mode ist eingeschaltet h ngt der Wert im Zugriffsregister auch davon ab ob das B2 Feld 0 oder 0 ist siehe folgende Tabelle PSW Bit 16 und 17 00 primary space mode 01 access register mode Wert im Zugriffsregister R1 xX 00000000 d h die Bitstellen 0 bis 31 sind 0 x 00000000 wenn das B2 Feld 0 ist Ist das B2 Feld 0 so wird der Inhalt des Zugriffsregisters B2 in das Zugriffsregister R1 bertragen Die Bitstellen 0 bis 6 des Zugriffsregisters B2 m ssen 0 sein sonst sind die Ergebnisse im Mehrzweckregister Rl und im Zugriffsregister R1 nicht vorhersagbar Es erfolgt kein Speicherzugriff auf die resultierende Adresse Anzeige Nicht ver ndert Programmunterbrechungen Keine U3119 J Z125 2 267 LAM 268 ESA Befehle Load Access Multiple Funktion Der Befehl LAM l dt aus dem Hauptspeicher bis zu 16 aufeinanderfolgende Worte in aufeinanderfolgende Zugriffsregister Die Anzeige wird nicht ver ndert Assemblerformat R1 R3 D2 B2 D2 B2 Wortgrenze Maschinenformat 0 20 31 Beschreibung Die aufeinanderfolgenden Zugriffsregister beginnend mit R1 und endend mit R3 wer den mit aufeinanderfolgenden Worten geladen deren erstes mit D2 B2 adressiert ist Ist R1 R3 so wird nur ein Register R1 geladen Ist R3 kleiner als R1 so wird von R1 aufw rts bis zum Zugriffsregister 15 und vom Zugriffsregister 0 bis zum und einschlie lich
137. er Task Prozessor 1 Prozessoren Warteschlange Ausgangslage Q X Y Z L RaA X 1 Element L Rc A Y verk Element Ausketten Element X Q Y Z Ausketten Element Y Q Z Einketten Element W Q W Z Einketten Element X Q XW Z CS Ra Rc Queue Anker E Q Y Element X ausgekettet Ausketten Element Y Q U3119 J Z125 2 Gemeinsam benutzte Daten in Multiprozessor Anlagen Task Prozessor 1 beginnt die Auskettung des Elements X Nachdem die Adresse des auszukettenden Elements sowie der Link zum n chsten Element geladen sind wird Task Prozessor 1 verz gert z B wegen Taskwechsel Ausbremsung des Prozessors Eingriff durch VM2000 Bevor der Update der Warteschlange mithilfe des CS Befehls vollzogen werden kann erfolgen weitere Warteschlangen Aktionen durch andere Tasks Prozessoren Wird erst danach der CS Befehl von Task Prozessor 1 wirksam wird bei obiger Konstel lation die erfolgreiche Ausf hrung angezeigt weil sich der Inhalt des Warteschlangen Ankers gegen ber dem vorausgehenden Ladebefehl nicht ver ndert hat Der Anker wurde mit dem vermeintlich noch verketteten Element Y versorgt Das in der Unterbre chung eingekettete Element W geht zusammen mit den nachfolgenden Warteschlangen Elementen verloren Folgt im Anschlu an die bisherige Warteschlangen Folge eine weitere Auskettung so wird das Element Y ein zweites Mal vergeben Es wird damit von zwei Instanzen paral lel aber ohne gegenseitige Koordination verwendet S
138. er R1 wird in das Wort bzw Dop pelwort an der Hauptspeicherstelle D2 X2 B2 gespeichert Anzeige Nicht ver ndert Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler X 48 Schreibzugriff auf Operand2 unm glich Adre fehler XNE falsche Gleitpunktregisterangabe oder D2 X2 B2 keine Doppel Wortgrenze U3119 J Z125 2 Gleitpunktbefehle SU SUR SW SWR Subtract Unnormalized Funktion Die Befehle SUR SU SWR und SW subtrahieren zwei Gleitpunktzahlen Die Differenz ersetzt den ersten Operanden sie wird nicht normalisiert Die Anzeige wird gem dem Wert der Differenz gesetzt Assemblerformate kurze Operanden kurze Differenz SUR R1 R2 R1 R2 0 2 4 oder 6 SU R1 D2 X2 B2 R1 0 2 4 oder 6 und lange Operanden lange Differenz SWR R1 R2 R1 R2 0 2 4 oder 6 SW R1 D2 X2 B2 R1 0 2 4 oder 6 und Maschinenformate SUR RR x 3E R2 Kurze Operanden SU RX XTE X D2 Kurze Operanden SWR RR Kae R2 8 12 16 2 Lange Operanden D2 Lange Operanden 0 34 U3119 J Z125 2 257 SU SUR SW SWR Gleitpunktbefehle Beschreibung Zun chst werden die Charakteristiken der beiden Operanden verglichen die Mantisse des Operanden mit der kleineren Charakteristik wird um die Differenz der Charakteristi ken nach rechts geschoben und seine Charakteristik um denselben Betrag erh ht so da die Charakteristiken gleich werden Die zuletzt hinausgeschobene Sedezimalzi
139. er nicht ausgewertet es ist also nicht m glich in einen Datenraum zu springen Operandenadressen Adre berechnung Alle Befehle entnehmen ihre Operanden entweder Registern oder dem Hauptspeicher bzw schreiben sie dorthin Im Falle von Register Operanden wird die entsprechende Registernummer in einem R Feld der Operandenadresse bestimmt Im Falle von Haupt speicher Operanden wird die Hauptspeicheradresse aus zwei bei den RX Befehlen aus drei Komponenten berechnet aus der Basisadresse der Distanzadresse und ggf der Indexadresse Die Basis und Indexadressierung erm glicht indirekten pointer Zugriff auf Operan den die Distanzadressierung erm glicht die Adressierung relativ zu einer Basis oder Indexadresse Die Basisadressierung dient insbesondere der Verschiebbarkeit eines Pro grammteils im Adre raum eines Anwenderprogramms Als Basisadresse verwendet man meist die Anfangsadresse eines gr eren Bereichs aus logisch zusammengeh rigen Daten oder Befehlen als Distanzadresse dient dann der Abstand eines einzelnen Ele ments vom Anfang dieses Bereichs bis zu 4095 Byte Die bei den RX Befehlen zus tz lich m gliche Indexadressierung erlaubt doppelt indirekten Zugriff auf Operanden etwa auf die Elemente einer Tabelle in einer Tabelle Die effektive Adresse eines Hauptspeicher Operanden wird berechnet als Summe aus der Basisadresse d h aus der 32 Bit langen Bin rzahl in dem Mehrzweckregi ster das durch das B Feld ei
140. eres Programm m glicherweise das Gleiche tut und dadurch sich die Bearbeitungs Resultate gegenseitig ausl schen k nnen Man betrachte dazu den einfachen Fall bei dem zwei zeitgleich ablaufende Pro gramme A und B ein gemeinsames Hauptspeicherwort Z hler um Eins erh hen 69 CS CDS Allgemeine Befehle Wenn beide Programme diese Erh hung zuf lligerweise gleichzeitig tun aber Pro gramm B um einen Befehl gegen ber Programm A versetzt abl uft dann kann fol gender Effekt auftreten to Liest Z hler 100 t erh ht Z hler 101 Liest Z hler 100 t2 speichert Z hler 101 erh ht Z hler 101 t3 speichert Z hler 101 Obwohl beide Programme erh ht haben enth lt Z hler letztlich statt des Werts 102 nur den Wert 101 weil Programm A noch nicht gespeichert hatte als Programm B schon begann Weiter unten wird eine Befehlsfolge gezeigt die eine sichere Methode gegen diesen Effekt darstellt Die Idee ist zur Speicherung des ge nderten Werts den Befehl CS oder CDS statt z B den Befehl ST zu verwenden Der CS Befehl stellt n mlich vor dem Speichern zum Zeitpunkt t des Programms B fest da der momentane Inhalt von Z hler nicht mehr gleich ist seinem Inhalt zum Zeitpunkt t weil das Programm A ihn inzwischen n mlich zum Zeitpunkt t ge ndert hat Programm B speichert dann eben nicht sondern wiederholt die Erh hung wobei es korrekterweise vom Wert 101 ausgeht Auch wenn ein gemeinsam benutzter Hauptspei
141. erte a i a 2i abnimmt kann unter Verwendung des Befehls BXH so aussehen 3 beliebiges Register f r die Laufvariable 9 H i ungeradzahliges Register f r Dekrement und Vergleichswert 3 9 BODY J BODY Schleifenrumpf Man vergleiche das Operandenfeld von BXH in diesem Beispiel mit dem von BXLE im vorigen Beispiel Bei der letzten Ausf hrung des BXH wird i mit i verglichen und demzufolge nicht mehr verzweigt w hrend bei den nicht letzten Ausf hrungen des BXH der Wert 0 mit i vergli chen wird und folglich ein R cksprung erfolgt Der Vergleich mit dem Endwert erfolgt bei BXH und BXLE vorzeichengerecht so da der Vergleich einer positiven Laufvaria blen mit einem negativen Endwert das gew nschte Ergebnis liefert Allzusehr kann man diesen Trick wohl nicht empfehlen aber er ist legal U3119 J Z125 2 51 52 Allgemeine Befehle Compare Funktion Die Befehle CR und C vergleichen zwei 32 Bit lange Festpunktzahlen vorzeichengerecht Die Anzeige wird gem dem Vergleichsergebnis gesetzt Assemblerformate CR R1 R2 ce R1 D2 X2 B2 D2 X2 B2 Wortgrenze Maschinenformate CR RR x 19 R2 Beschreibung Durch den Befehl CR wird der Inhalt des Mehrzweckregisters R2 durch den Befehl C wird das mit D2 X2 B2 adressierte Wort des Hauptspeichers vorzeichengerecht mit dem Inhalt des Mehrzweckregisters R1 verglichen Beide Operanden werden als 32 Bit lange Bin rzahlen mit Vorzeichen
142. essiert Wenn R1 gt R3 ist wird ab dem Zugriffsregister R1 bis zum Zugriffsregister 15 und dann ab dem Zugriffsregister 0 bis zum Register R3 gespeichert Wenn R1 R3 ist wird nur ein Zugriffsregister R1 gespeichert Befehl Operandl Operand2 STAM Inhalt von Zugriffsregister mit D2 B2 adressierte Wortfolge R1 bis R3 Wortanzahl R3 R1 1 wenn R3 gt R1 R3 R1 17 wenn R3 lt R1 Anzeige Nicht ver ndert U3119 J Z125 2 273 STAM ESA Befehle Programmunterbrechungen Art Ursachen Adre umsetzungsfehler x 4a8 Schreibzugriff auf Operand2 unm glich Adre fehler x 5C D2 B2 keine Wortgrenze 274 U3119 J Z125 2 ESA Befehle TAR Test Access Register Funktion Der Befehl TAR berpr ft ob w hrend einer Adre umsetzung mittels eines Zugriffsregi sters ART access register translation eine Ausnahmebedingung aufgetreten ist Die Anzeige wird gem dem ALET Wert gesetzt Assemblerformat Name Operanden Bemerkungen Maschinenformat 0 16 24 28 31 Beschreibung Der Inhalt des Zugriffsregisters R1 ALET access list entry token wird auf Ausnahmebe dingungen gepr ft die w hrend der ART access register translation erkannt wurden Der ALET wird gepr ft ob er einen g ltigen Eintrag in der Zugriffsliste referenziert oder ob der Inhalt X 00000000 betr gt Wenn R1 0 ist wird der Inhalt des Zugriffsregisters 0 in der ART verwendet anstatt wie blich X 00000000 Die Bitstell
143. f Operandl oder Lesezugriff auf Operand2 unm glich D2 X2 B2 keine Wortgrenze Adre fehler 122 U3119 J Z125 2 Allgemeine Befehle N NC NI NR Programmierhinweise Die AND Befehle setzen im ersten Operanden alle Bitstellen auf 0 denen im zweiten Operanden eine Bitstelle mit dem Wert 0 gegen berliegt und lassen die brigen Bit stellen des ersten Operanden unver ndert Die Verarbeitung der Operanden erfolgt byteweise von links nach rechts Bei NC d rfen sich die Operanden berlappen Dabei werden allerdings i a fr here Byte Operationen durch sp tere wieder ge ndert Wenn beim NR Befehl R1 R2 ist erfolgt keine nderung des Inhalts von R1 aber die Anzeige wird gesetzt Bei Anwendungen der Befehle NI und NC in Multiprozessor Anlagen ist folgendes zu beachten Speicherzugriffe des ersten Operanden der Befehle NI und NC bestehen aus dem Lesen eines Byte aus dem Speicher und dem anschlie enden Abspeichern des ver nderten Wertes in den Speicher Diese Lese und Abspeicherzugriffe auf ein einzel nes Byte geschehen nicht unbedingt sofort hintereinander wenn ein weiterer Prozes sor oder ein weiteres Programm oder ein Kanalprogramm Ein Ausgabe versucht diese Speicherstelle zu ndern Eine sichere Methode zum Update eines gemeinsam benutzten Speicherworts ist im Anhang 7 6 sowie in den Programmierhinweisen der Befehle CS und CDS beschrieben Beispiel NI U3119 J Z125 2 SEMAPHOR X FO Setzen der rech
144. f einer privilegierten Routine des Betriebssystems Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen Maschinenformat I 0 8 15 Beschreibung Der Befehl SVC bewirkt einen Supervisor Organisationsprogramm Aufruf und ber tr gt dazu den Inhalt seines I Felds in ein privilegiertes Register der Zentraleinheit Der weitere Ablauf des Befehls findet im privilegierten Zustand der Zentraleinheiten statt und wird deshalb hier nicht weiter beschrieben Anzeige Nicht ver ndert Programmunterbrechungen Keine Programmierhinweise Der Befehl SVC ist Teil der Expansion vieler BS2000 Makros z B des Makros WROUT Er besorgt den Transfer dieser Makros an die BS2000 Systemroutinen Die Einschalung des SVC in Makros befreit den Anwender u a von der Memorierung des entsprechen den SVC Codes und erm glicht deren Portabilit t z B beim bergang von BS2000 Ver sionen U3119 J Z125 2 Allgemeine Befehle TM Test under Mask Funktion Der Befehl TM testet ausgew hlte Bitstellen eines Byte im Hauptspeicher Die Anzeige wird gem dem Testergebnis gesetzt Assemblerformat DIBI I2 B 00000000 lt I2 lt B 11111111 Maschinenformat 0 Beschreibung Der Direktoperand I2 des Befehls wird als Maske verwendet mit der ausgew hlte Bit des mit D1 B1 adressierten Byte im Hauptspeicher getestet werden Die 8 Bit der Maske entsprechen Eins zu Eins den 8 Bit des zu testend
145. ffer wird als Schutzziffer aufbewahrt Die Schutzziffer des anderen Operanden oder beider Operanden wenn vor der Subtraktion die Charakteristiken gleich waren wird 0 gesetzt Anschlie end werden die beiden Mantissen einschlie lich der Schutzziffern unter Ber ck sichtigung der Vorzeichen subtrahiert Operand1 Mantisse minus Operand2 Mantisse Die Differenz bildet ein Zwischenergebnis Das Zwischenergebnis besteht beim kurzen Format aus 7 und beim langen Format aus 15 Sedezimalstellen Wenn ein berlauf aufgetreten ist wird das Zwischenergebnis um eine Sedezimalstelle nach rechts geschoben dann in die links freigewordene Sedezimalstelle eine 1 einge setzt und die Charakteristik um 1 erh ht Signifikanz tritt ein wenn das Zwischenergebnis ausschlie lich Schutzziffer 0 ist Wenn in diesem Fall das Bit f r Signifikanz in der Programmaske 1 ist BS2000 Standard erfolgt eine Programmunterbrechung andernfalls erfolgt keine Programmunterbrechung und als Endergebnis wird eine echte Null erzeugt Das Zwischenergebnis wird ohne vorherige Normalisierung auf 6 bzw 14 Sedezimalstel len gek rzt und zusammen mit der zuvor ermittelten Charakteristik zum Endergebnis gemacht Exponenten berlauf tritt ein wenn die Charakteristik des Endergebnisses gr er als 127 wird Es erfolgt dann eine Programmunterbrechung Vorzeichen und Mantisse sind korrekt aber die Ergebnis Charakteristik en sind um 128 zu klein Exponenten Unterlauf kan
146. ge Nicht ver ndert U3119 J Z125 2 105 MH 106 Allgemeine Befehle Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Lesezugriff auf Operand2 unm glich Adre fehler KOGE D2 X2 B2 keine Halbwortgrenze Programmierhinweise Da die h chstwertigen 16 Bit des echten Produkts verworfen werden kann es ge schehen da der Wert und oder die Vorzeichenstelle des Ergebnisses verschieden sind vom Vorzeichen oder Wert des echten Produkts Selbst wenn dies geschieht wird es nicht angezeigt Der Befehl MH sollte daher nur dann verwendet werden wenn von Multiplikand und Multiplikator sicher bekannt ist da ihr Produkt im Be reich von 231 und 231 1 liegt Beispiele Die folgenden Werte von Multiplikand und Multiplikator ergeben die dargestellte Werte f r das Ergebnis Man beachte da das Ergebnis nur dann mit dem Produkt berein stimmt wenn das Produkt im Wertebereich von 32 Bit langen Festpunktzahlen liegt Multiplikand Multiplikator Bemerkung 29 17 493 arithmetisch korrekt 29 17 493 arithmetisch korrekt 131072 32768 0 arithmetisch falsch richtig w re 4 295 464 296 65538 32767 2 147 483 646 arithmetisch korrekt Das letzte Beispiel zeigt eine arithmetische Grenze des Befehls MH bereits die Werte 65539 und 32767 erzeugen ein aritnmetisch unbrauchbares Resultat U3119 J Z125 2 Allgemeine Befehle MVC Move Characters Funktion Der Befehl MVC bertr gt
147. ge Festpunktzahl vorzeichengerecht Der Rest und der Quotient ersetzen den Dividen den Die Anzeige wird nicht ver ndert Assemblerformate DR R1 R2 R1 geradzahlig D R1 D2 X2 B2 R1 geradzahlig und D2 X2 B2 Wortgrenze Maschinenformate DR RR x 1D R2 Beschreibung Das R1 Feld der Befehle DR und D bestimmt ein Paar von Mehrzweckregistern beste hend aus den Registern R1 und R1 1 Ri mu geradzahlig sein andernfalls erfolgt eine Programmunterbrechung wegen Adre fehlers Der Dividend wird den Mehrzweckregistern R1 und R1 1 entnommen Der Divisor ist beim Befehl DR im Mehrzweckregister R2 und beim Befehl D in dem mit D2 X2 B2 adressierten Hauptspeicherwort enthalten Der Rest wird in das geradzahlige Register R1 der Quotient in das ungeradzahlige Register Ri 1 gespeichert sie berschreiben den Dividenden Der Dividend wird als 64 Bit lange Festpunktzahl mit dem Vorzeichen an der Bitstelle 0 von R1 der Divisor Rest und Quotient werden als 32 Bit lange Festpunktzahlen mit Vor zeichen behandelt Das Vorzeichen des Quotienten wird nach den blichen algebraischen Regeln ermittelt der Rest hat stets das gleiche Vorzeichen wie der Dividend U3119 J 2125 2 Allgemeine Befehle D DR Wenn der Quotient zu gro ist zur Aufnahme im Register R1 oder der Divisor 0 ist erfolgt eine Programmunterbrechung wegen Divisionsfehlers auch wenn der Dividend 0 ist Anzeige Nicht ver ndert Programmunterbrechun
148. gebnisses gr er als 127 wird Es folgt dann eine Programmunterbrechung Vorzeichen und Mantisse sind korrekt aber die Ergebnis Charakteristik en sind um 128 zu klein Exponenten Unterlauf tritt ein wenn die Charakteristik des Endergebnisses kleiner als 0 wird Wenn in diesem Falle das Bit f r Exponenten Unterlauf in der Programmaske 1 ist BS2000 Standard erfolgt eine Programmunterbrechung Vorzeichen und Mantisse sind korrekt aber die Ergebnis Charakteristik en sind um 128 zu gro andernfalls erfolgt keine Programmunterbrechung und als Endergebnis wird eine echte Null er zeugt Beim Befehl AXR tritt Exponenten Unterlauf nicht ein wenn nur beim unteren Teil des Endergebnisses die Charakteristik kleiner als 0 wird In diesem Falle ist dessen Charak teristik um 128 zu gro gesetzt U3119 J Z125 2 Gleitpunktbefehle Anzeige O Zero 1 Minus Ergebnis ist lt 0 2 Plus Ergebnis ist gt 0 3 Nicht verwendet Programmunterbrechungen Art Adre umsetzungsfehler Adre fehler Exponenten berlauf Signifikanz Exponenten Unterlauf Programmierhinweise AD ADR AE AER AXR Die Mantisse des Ergebnisses ist 0 das Vorzeichen ist positiv Ursachen AE AD Lesezugriff auf Operand2 unm glich falsche Gleitpunktregisterangabe oder D2 X2 B2 keine Doppel Wortgrenze Summen Charakteristik gt 127 Mantisse 0 Charakteristik 0 und Maskenbit f r Signifikanz 1 Summen Charakteristik lt 0 Die Vertauschung
149. gen Art Ursachen Adre umsetzungsfehler D Lesezugriff auf Operand2 unm glich Adre fehler DR D R1 nicht geradzahlig D D2 X2 B2 keine Wortgrenze Divisionsfehler Divisor 0 oder Quotient zu gro Programmierhinweise Wenn R1 R2 ist erfolgt in allen F llen eine Programmunterbrechung wegen Divi sionsfehlers Die Maximalwerte f r den Dividenden sind 262 231 1 und 262 1 nicht 263 1 und 263 siehe Beispiele Man beachte da nach der Befehlsausf hrung der Rest vor dem Quotienten gespei chert ist R1 Rest R1 1 Quotient Beispiele Die folgenden Werte von Dividend und Divisor ergeben die dargestellten Werte f r Quo tient und Rest 500 17 7 29 500 17 7 29 500 17 7 29 500 17 7 29 Grenzwerte 262 231 1 231 1 231 2 231 1 2624231_1 231 231 231 1 26242 231 1 23142 231 26241 231 23141 231 1 U3119 J Z125 2 77 EX 78 Allgemeine Befehle Execute Funktion Der Befehl EX f hrt einen anderen Befehl aus Dieser Befehl kann zuvor modifiziert wer den Die Anzeige wird nur ver ndert wenn der ausgef hrte Befehl sie ver ndert Assemblerformat Name Operanden Bemerkungen R1 D2 X2 B2 D2 X2 B2 Halbwortgrenze Maschinenformat 0 20 31 Beschreibung Der Befehl EX f hrt den mit D2 X2 B2 adressierten Befehl Ziel Befehl aus Zuvor wer den dessen Bitstellen 8 bis 15 mit den Bitstellen 24 bis 31 des Mehrzweckregisters R1 durch log
150. ger Operandl erweiterter Operand2 LRDR R1 R2 R1 0 2 4 oder 6 und R2 0 oder 4 Maschinenformate LRER RR Kurzer Operandl langer Operand2 0 erweiterter Operand2 8 12 15 Beschreibung Die lange LRER bzw erweiterte LRDR Gleitpunktzahl im Gleitpunktregister R2 bzw im Gleitpunkregister Paar R2 und R2 2 wird auf das kurze LRER bzw lange LRDR Gleitpunktformat gerundet und in das Gleitpunktregister R1 bertragen Es findet keine Normalisierung statt Das Vorzeichen bleibt unver ndert Die Rundung besteht darin da zur Bitstelle 32 bzw 72 der Mantisse des zweiten Ope randen eine Eins addiert wird und ein etwaiger bertrag auf die h herwertigen Mantis senstellen weitergereicht wird Wenn bei der Rundung ein bertrag ber die h chstwertige Sedezimalstelle der Man tisse auftritt wird diese um eine Sedezimalstelle nach rechts geschoben in die freige wordene Stelle eine 1 eingesetzt und die Charakteristik um Eins erh ht U3119 J Z125 2 Gleitpunktbefehle LRDR LRER Exponenten berlauf tritt ein wenn die Ergebnis Charakteristik gr er als 127 wird Es findet dann eine Programmunterbrechung statt wobei Mantisse und Vorzeichen des Ergebnisses korrekt sind aber die Charakteristik um 128 zu klein ist Exponenten Unterlauf und Signifikanz k nnen nicht eintreten Anzeige Nicht ver ndert Programmunterbrechungen Art Gewicht Ursachen Adre fehler X1 5C falsche Gleitpunktregisterangabe
151. gischer Addition durchgef hrt Die vorzeichengerechte wie die logische Subtraktion besteht in der vorzeichengerechten bzw logischen Addition des Einerkomplements des zweiten Operanden und der Zahl 1 zum ersten Operanden Das Einerkomplement einer Bin rzahl entsteht durch Invertie rung aller Bitstellen der Zahl U3119 J Z125 2 19 Datentypen 20 Grundlagen Der Unterschied zwischen vorzeichengerechter und logischer Addition bzw Subtraktion besteht in der Interpretation des Resultats Bei einer logischen Addition bzw Subtraktion wird das Resultat als vorzeichenlose Bin rzahl aufgefa t in der Anzeige wird dargestellt ob das Resultat 0 oder 0 ist und ob ein berlauf aus der h chstwertigen Bin rstelle d h ein bertrag ber die Bitstelle O hinaus stattgefunden hat oder nicht Bei einer vorzeichengerechten Addition bzw Subtraktion wird das Resultat als Bin r zahl mit Vorzeichen Festpunktzahl aufgefa t in der Anzeige wird dargestellt ob das Resultat 0 lt 0 oder gt 0 ist oder ob ein Festpunkt berlauf eingetreten ist Festpunkt berlauf ist eingetreten wenn ein etwaiger Bin rstellen berlauf in die Vor zeichenstelle des Resultats ungleich ist dem Bin rstellen berlauf aus der Vorzeichen stelle Arithmetisch gesehen bedeutet dies im Falle 32 Bit langer Festpunktzahlen da das Resultat gr er als 231 1 oder kleiner als 231 ist Bei Festpunkt berlauf wird die Anzeige auf 3 Overflow gesetzt und es e
152. gramm sollte von sich aus sicherstellen da die gesamten Adre bereiche beider Operanden ausschlie lich in seinem eigenen Adre raum liegen Der Befehl CLCL pr ft n mlich erst w hrend seines Ablaufs und nicht bereits an seinem Beginn ob die Adre bereiche in erlaubten Grenzen liegen Wenn ein unerlaubter Teil Bereich entdeckt wird bricht der Befehl nicht notwendig ab sondern setzt ggf hinter dem Teil Bereich fort aber in jedem Fall sind die Ergebnisse sowohl im Haupt speicher wie in der Anzeige unbrauchbar Der Anwender sollte den Befehl CLCL nicht mit dem Befehl EX ausl sen wenn die ser EX die gleichen Register benutzt wie der CLCL U3119 J Z125 2 Allgemeine Befehle CLCL Beispiel Die folgenden Befehle vergleichen maximal 20000 Byte der Hauptspeicherbereiche C1 und C2 Da C2 nur eine L nge von 15000 Byte hat werden die letzten 5000 Byte von C1 gegen das F llbyte verglichen sofern die ersten 15000 Byte gleich sind 4 5 A C1 20000 Register 4 und 5 Operandl 10 11 A C2 15000 Register 10 und 11 Operand2 11 B 1000 c F llbyte nach Byte 0 von Reg 11 4 10 Nach der Befehlsausf hrung von CLCL sind folgende Werte m glich im Falle von Gleichheit enthalten die Register 4 und 10 die Werte A C1 20000 und A C2 15000 und die L ngenfelder der Register 5 und 11 den Wert 0 im Falle von Ungleichheit innerhalb der ersten 15000 Byte zeigen die Register 4 und 10 auf das erste ungleiche Byte in C1 b
153. grammunterbrechung mit dem Gewicht 5C bzw 48 an der Zieladresse 40 U3119 J 2125 2 Allgemeine Befehle BASSM Programmierhinweise Der Befehl BASSM dient dem Aufruf eines Unterprogramms das im gleichen oder in einem anderen Adressierungsmodus abl uft als das aufrufende Programm Die Befehlsfolgeadresse ist bei direkter Ausf hrung eines BASSM Befehls dessen um 2 erh hte Befehlsadresse wenn allerdings der Befehl BASSM durch den Befehl EX ausgef hrt wird ist die Befehlsfolgeadresse die 4 erh hte Adresse dieses EX Der Befehl BASSM ist nur auf Zentraleinheiten verf gbar die ber den 31 Bit Adres sierungsmodus verf gen Um ein Assemblerprogramm unabh ngig von der Zentra leinheit zu machen auf der es abl uft gibt es im Vorrat der Makroaufrufe des BS2000 V9 0 und Nachfolger den Makro BASSM mit dem der Befehl BASSM eingeschalt wird Der Makroaufruf BASSM generiert auf Anlagen mit 31 Bit Adressierungsmodus den Befehl BASSM und auf Anlagen die nur ber den 24 Bit Adressierungsmodus verf gen den Befehl BALR Eine vollst ndige Darstellung der Adressierungsmodi und der verschiedenen Pro grammverkn pfungsformen enth lt das Handbuch Einf hrung in die XS Program mierung f r ASSEMBLER Programmierer 2 Zur R ckkehr aus einem mit BASSM aufgerufenen Unterprogramm sollte der Befehl BSM verwendet werden um sicherzustellen da anschlie end wieder der Adressie rungsmodus des aufrufenden P
154. gro Adre fehler Datenfehler Divisionsfehler Programmierhinweise Alle Operanden Dividend Divisor Quotient und Rest werden als Ganzzahlen inter pretiert Der Quotient kann h chstens 15 Byte lang werden also h chstens 29 Dezimalstel len umfassen Dividend und Divisor d rfen sich berlappen aber dann m ssen die Adressen ihrer niedrigstwertigen Byte gleich sein D1 B1 L1 1 D2 B2 L2 1 andernfalls erfolgt eine Programmunterbrechung wegen Datenfehlers au erdem mu L1 gt L2 also D1 B1 D2 B2 gelten Der Dividend mu wenigstens ein f hrendes Halbbyte mit dem Wert O haben Dies ist eine notwendige nicht aber hinreichende Bedingung daf r da kein Divisionsfeh ler auftritt U3119 J Z125 2 191 DP Dezimalbefehle Die folgende Befehlsfolge ist quivalent der Pr fung auf Divisionsfehler die innerhalb von DP abl uft MVO TEMP L DIVISOR 1 DIVISOR CLC TEMP L DIVISOR DIVIDEND BNH DIVERROR Diese Befehlsfolge kann man vor einem DP Befehl ausf hren um sicherzustellen da keine Programmunterbrechung wegen Divisionsfehlers auftritt Ben tigt wird daf r ein tempor res Feld TEMP das L DIVISOR 1 Byte lang ist Beispiele Die folgenden Beispiele ergeben jeweils nach der Ausf hrung von DFIELD DIVISOR folgende Resultate DFIELD vorher VISOR DFIELD nachher Dividend Divisor Quotient Divisionsrest PL5 1001
155. gt 0 oder 0 Maskenzeichen Es gibt folgende Maskenzeichen Maskenzeichen Codierung ziffernselektor x 20 Signifikanzstarter x 21 Fel trenner KNDD Textzeichen jede andere Das Auftreten entweder eines Ziffernselektors oder eines Signifikanzstarters in der Maske bewirkt da die n chste Dezimalziffer des Sendefeldes gelesen wird Je nach deren Wert sowie der Stellung des Signifikanz Indikators wird entweder diese Dezimalzif fer entpackt und mit der Zone F versehen oder das F llzeichen anstelle des Mas kenzeichens in das Empfangsfeld eingetragen Der Feldtrenner bestimmt da eine neue Dezimalzahl des Sendefeldes beginnt wenn in einem Befehl ED oder EDMK mehrere Dezimalzahlen aufbereitet werden sollen Der Feldtrenner wird immer durch das F llzeichen ersetzt und bewirkt da der Signifikanz Indikator in die Stellung aus gebracht wird Alle Textzeichen in der Maske bleiben je nach der Stellung aus bzw ein des Signifi kanz Indikators entweder unver ndert oder werden durch das F llzeichen ersetzt U3119 J Z125 2 Dezimalbefehle ED EDMK F llzeichen Das erste Zeichen in der Maske d h das Byte an der Adresse D1 B1 wird als F llzei chen verwendet Als F llzeichen kann jedes beliebige Zeichen gew hlt werden auch der Ziffernselektor der Signifikanzstarter oder der Feldtrenner Das F llzeichen wird in Abh ngigkeit von der Stellung des Signifikanz Indikators vom Maskenzeichen und dem We
156. gt die momentanen Werte der Anzeige und der Programmaske in ein Mehrzweckregister Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen Maschinenformat ZZ EZ 0 16 24 28 31 Beschreibung Der momentane Wert der Anzeige 040 140 219 Oder 3 wird bin r in die Bitstellen 2 und 3 und der momentane Wert der 4 Bit langen Programmaske wird in die Bitstellen 4 bis 7 des Mehrzweckregisters R1 bertragen Die Bitstellen O und 1 des Registers R1 werden auf 0 gesetzt die Bitstellen 8 bis 31 des Registers R1 bleiben unver ndert Die Bitstellen 16 bis 23 und 28 bis 31 des Befehls werden ignoriert Anzeige Nicht ver ndert Programmunterbrechungen Keine U3119 J Z125 2 85 IPM 86 Allgemeine Befehle Programmierhinweise Der Befehl IPM entsch digt daf r da es im 31 Bit Adressierungsmodus nicht m g lich ist mit den Befehlen BALR oder BAL die Anzeige und die Programmaske zu lesen Im 24 Bit Adressierungsmodus ist dieses weiterhin m glich aber auch da ist die Verwendung des Befehls IPM die bessere L sung Der Befehl IPM liefert nicht den Instruction Length Code ILC den die Befehle BALR und BAL allerdings auch nur im 24 Bit Adressierungsmodus liefern Auf ihn mu man im 31 Bit Adressierungsmodus endg ltig verzichten wenn er denn je gebraucht wird Die Bit der Programmaske haben folgende Bedeutung Bit der Programmaske Bitstelle in R1 Bedeutung 0 4 Festpunkt berla
157. h w re ein zweiter Zugriff auf den Wert der Sperre z B L Rnew SPERRE statt LTR Rnew Rold weil dann nicht mehr garantiert w re da der modifizierte Wert und der Vergleichswert sich genau um die beabsichtigte Differenz unterscheiden die Sperre kann zwischen zwei Zugriffsbefehlen von einem anderen Programm Task Contingency ver ndert worden sein Die Zuweisung mit dem Befehl L Rold SPERRE mu im zweiten Beispiel innerhalb der Schleife stattfinden weil der CS Befehl nur dann ausgef hrt wird wenn der erste Teil der Abfrage Rold gt 0 wahr ist Betriebsmittelverwaltung Es sollen gleichartige Betriebsmittel verwaltet werden z B gleich gro e Teile eines Spei cherbereiches die Elemente oder Eintr ge hei en Ein solches Element kann bei Bedarf f r Tabellen dynamisch zugeordnet und wieder freigegeben werden Jedes Ele ment kann demnach entweder frei oder belegt sein F r die Verwaltung der Elemente existiert ein Bitvektor in dem jedes Bit einem Element zugeordnet ist und dessen Zu stand kennzeichnet 292 U3119 J Z125 2 Gemeinsam benutzte Daten in Multiprozessor Anlagen Bit N 0 bedeute Element N ist frei Bit N 1 bedeute Element N ist belegt Der Einfachheit halber nehmen wir an da maximal 64 Elemente und damit 64 Bits f r unsere Zwecke ausreichen Beispiel 3 Belegen eines Elements SPERRE DC DO OLD DS D NEW DS D SLR R4 R4 LA RSi SLDL R4 64 bitnum bitnum
158. hinausgeschoben Programmunterbrechungen Art Gewicht Ursachen Festpunkt berlauf x 78 siehe Anzeige 3 Overflow Programmierhinweise Wenn B2 0 ist bestimmt D2 allein die Verschiebeanzahl in diesem Fall darf die Angabe von B2 im Assemblerformat entfallen Wenn die Verschiebeanzahl 0 modulo 64 ist wird das Register R1 nicht ver ndert aber es wird die Anzeige gesetzt Die Verschiebung um eine variable Anzahl von Bitstellen wird erreicht indem man die Variable in das Mehrzweckregister B2 l dt Beispiele Die folgenden Beispielbefehle ergeben Register 0 vorher Beispielbefehl Register 0 nachher Anzeige 0 001 1 2 15721 1 SLA 0 1 1 21 0 2 1 0 001 1 SLA 0 30 010 0 230 2 0 001 1 SLA 0 31 es 0 0 3 Man beachte die beiden F lle von Festpunkt berlauf Anzeige 3 dieser Festpunkt berlauf kommt zustande weil ein Bit ungleich dem Vorzeichen ber die Bitstelle 1 hin ausgeschoben wurde Die Anzeige 3 Overflow zeigt in diesen F llen an da das Ergeb nis arithmetisch nicht korrekt ist U3119 J Z125 2 137 SLA Allgemeine Befehle Das letzte Beispiel zeigt einen Fall ohne Verschiebung von der Verschiebezahl werden nur die niedrigstwertigen 6 Bit verwendet und diese ergeben bei der Zahl 128 den Wert 0 Zwar wird das Register 0 nicht ver ndert aber es wird die Anzeige gesetzt 138 U3119 J Z125 2 Allgemeine Befehle SLDA Shift Left Double Funktion Der Bef
159. hl BAS an die Adresse D2 X2 B2 verzweigt Diese Adresse ist je nach Adressierungsmodus 24 Bit oder 31 Bit lang Wenn beim Befehl BASR das R2 Feld 0 ist wird nicht verzweigt sondern mit dem n chsten Befehl fortgefahren Die Sprungadresse wird ermittelt bevor das Mehrzweckregister R1 ver ndert wird Anzeige Nicht ver ndert U3119 J Z125 2 Allgemeine Befehle BAS BASR Programmunterbrechungen Keine beim Befehl selbst Wenn allerdings die Zieladresse keine Halbwortadresse ist oder auf sie nicht zugegriffen werden kann erfolgt eine entsprechende Programmunterbrechung mit dem Gewicht 5C bzw 48 an der Zieladresse Programmierhinweise U3119 J Z125 2 Die Befehle BASR und BAS dienen dem Aufruf eines Unterprogramms das im glei chen Adressierungsmodus abl uft wie das aufrufende Programm Der Aufruf von BASR mit einem R2 Feld 0 bewirkt da nur der momentane Adres sierungsmodus und die Befehlsfolgeadresse ins Mehrzweckregister R1 gespeichert werden aber nicht verzweigt wird Dies kann man z B zur Gewinnung einer Basis adresse benutzen etwa in der Anweisungsfolge BASR 3 0 USING 3 Zur R ckkehr aus einem mit BASR oder BAS aufgerufenen Unterprogramm wird nor malerweise der Befehl BCR oder der Befehl BC verwendet jedoch kann auf Zentra leinheiten die ber den 31 Bit Adressierungsmodus verf gen daf r auch der Befehl BSM verwendet werden Die Befehlsfolgeadresse ist bei direkter Ausf hrung eines
160. ich hieraus m glicherweise erge bende Fehler sind berschreiber und Ring Verkettungen wenn z B das Element Y zwei mal in die obige Warteschlange zur ckgekettet wird Diese Fehler sind wenn berhaupt sehr schwer diagnostizierbar da sie sich meist erst zu einem sehr viel sp teren Zeitpunkt bemerkbar machen Abhilfe schafft hier ein Z hler um welchen der Warteschlangen Anker erweitert wird Dieser darf nur in eine Richtung z B aufw rts gez hlt werden Anstelle des CS Befehls ist dann der CDS Befehl zu verwenden mit welchem der Warteschlangen Anker in der L nge von zwei Worten multiprozessor fest modifiziert werden kann Der obige Algorithmus ist entspre chend der obigen Abbildung wie folgt anzupassen L RaCc Lade aktuellen Z hler aus Warteschlangen Anker L Rb A X Lokalisiere Adresse des vordersten Elements LA Rc 1 Ra Erh he Z hler Wrap Around L Rd A Y Lokalisiere Adresse des verketteten Elements CDS Ra Rc Queue Anker F hre Auskettung aus Ein Z hler welcher stets die Anzahl der in der Warteschlange befindlichen Elemente anzeigt ist nicht geeignet denn er w rde im obigen Warteschlangen Beispiel genauso unver ndert erscheinen wie das im Anker angezeigte Warteschlangen Element U3119 J Z125 2 299 Literatur Literatur 1 ASSEMBH BS2000 Beschreibung Zielgruppe Anwender die im BS2000 Programme in der Assembler oder Makrosprache erstellen sowie die strukturierte Programmierung benutzen wollen
161. ichen durch D dargestellt Die beiden Operanden d rfen sich berlappen aber dann m ssen die Adressen ihrer niedrigstwertigen Byte gleich sein D1 B1 L1 1 D2 B2 L2 1 andernfalls erfolgt eine Programmunterbrechung wegen Datenfehlers Der zweite Operand wird nur ge ndert wenn er sich mit dem ersten Operanden berlappt Die Verarbeitung der Operanden geschieht von rechts nach links Bei einem Dezimal berlauf hat das Resultat das Vorzeichen der korrekten Summe 186 U3119 J Z125 2 Dezimalbefehle AP Beispiele Die folgenden Beispiele von AP Befehlen ergeben folgende Ergebnisse DFIELD vorher Beispiel Befehl DFIELD nachher PL1 1 LD PL1 1 PL1 1 LD PL16 2 PBLL L LD DFIELD PLI 1 LD PL8 11 Man beachte da der Dezimal berlauf im vierten Beispiel nicht durch die berl nge des zweiten Operanden ausgel st wird sondern deshalb auftritt weil die Summe 10 nicht in den ersten Operanden pa t Bei Dezimal berlauf kann es wie hier gesche hen da eine resultierende Null ein negatives Vorzeichen bekommt U3119 J Z125 2 187 CP 188 Dezimalbefehle Compare Decimal Funktion Der Befehl CP vergleicht zwei gepackte Dezimalzahlen Die Anzeige wird gem dem Vergleichsergebnis gesetzt Assemblerformat Maschinenformat 0 8 12 16 20 32 36 47 IA Beschreibung Die gepackte Dezimalzahl im Feld des ersten Operanden
162. ige 0 Nicht verwendet siehe Programmierhinweise 1 Minus Differenz 0 kein berlauf 2 Plus Differenz 0 berlauf 3 Overflow Differenz 0 berlauf U3119 J Z125 2 133 SL SLR 134 Allgemeine Befehle Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 SL Lesezugriff auf Operand2 unm glich Adre fehler KOGE SL D2 X2 B2 keine Wortgrenze Programmierhinweise Die logische Subtraktion besteht in der Addition des Einerkomplements des zweiten Operanden und zus tzlich der Addition von 1 zum Inhalt des Mehrzweckregisters R1 nicht in der Addition des Zweierkomplements Deshalb entsteht in jedem Falle berlauf wenn der zweite Operand 0 ist was durch die Anzeige Werte 2 oder 3 angezeigt wird Eine resultierende Differenz 0 erzeugt stets die Anzeige 2 Plus nicht die Anzeige O Zero Die logische Subtraktion erzeugt in allen F llen das gleiche Ergebnis wie die arithme tische Subtraktion durch SR S oder SH allerdings wird die Anzeige anders gesetzt und es erfolgt bei Uberlauf keine Programmunterbrechung Eine andere Interpretation der Werte der Anzeige ist die folgende 0 Nicht verwendet 1 Minus Operandi lt Operand2 2 Plus Operandi Operand2 3 Overflow Operandi gt Operand2 Der Befehl SL kann Anwendung finden bei der vorzeichengerechten Subtraktion von Festpunktzahlen die l nger als 32 Bit sind Dabei verwendet man SL Befehle zur Subtraktion der niederwertigen Wort
163. indirekte Bestimmung von dessen L ngen Index Masken oder Registerfeld oder von dessen zweitem Operationscode Byte Der Befehl EX hat besondere Bedeutung bei der Programmierung von sog read only oder reentrant Programmen weil er den Ziel Befehl nicht ver ndert siehe Beispiel Vorsicht ist geboten wenn der Ziel Befehl ein unterbrechbarer Befehl z B der Befehl CLCL oder MVCL ist In diesem Fall sollte nicht eines der Register X2 oder B2 des Befehls EX auch im Ziel Befehl verwendet werden weil dann nach EX deren Integri t t nicht mehr sichergestellt ist Auch sollte bei MVCL der Befehl EX nicht selbst im Empfangsfeld des Ziel Befehls enthalten sein Der Befehl EX ist sehr zeitaufwendig Beispiele Beispiel 1 Die folgenden Befehle machen eine Zahl variabler L nge zu einer Zahl fester L nge und konvertieren sie dabei ins gepackte Format 5 SLENGTH SLENGTH Laenge der Zahl in SFIELD 5 0 minus 1 5 PACKINST PACKINST DFIELD SFIELD 0 L1 L DFIELD L2 0 Die L nge der SFIELD Zahl wird dem Halbwort SLENGTH entnommen und durch den Befehl EX in das L2 Feld des Befehls PACK ge ODERH t das deshalb 0 sein mu U3119 J Z125 2 79 EX 80 Allgemeine Befehle Zu beachten ist da die im Befehl PACK verwendete L nge gegen ber der wahren L nge um 1 vermindert sein mu was hier durch den Befehl BCTR geschieht Die L nge der DFIELD Zahl ermittelt der Assembler 1 selbst ndig aus der Datenerkl r
164. ingungen eine Programmunterbrechung erfolgt Mit dem Befehl SPM kann das Anwenderprogramm jedoch die Vorbesetzung ndern R2 darf R1 sein Bei den Befehlen MER ME MXDR und MXD ist das Ergebnis exakt bei MDR MD und MXR k nnen rechtsstehende Sedezimalziffern durch Abschneiden verloren gehen U3119 J Z125 2 Gleitpunktbefehle MD MDR ME MER MXD MXDR MXR Beispiel Name Operanden FLNO1 EE2 2 56 X 43100000 FLNO2 ES4 16 X C6000010 FLNO3 D 4096 X C410000000000000 6 FLNO1l 6 FLNO2 6 FLNO3 ergibt Anzeige 0 Equal Der Befehl ME erzeugt im Gleitpunktregister 6 den Wert D 4096 X C410000000000000 der Befehl CD setzt die Anzeige auf 0 Equal In dem Beispiel ist von den M glichkeiten des Assembler zur Datenerkl rung von Gleit punktzahlen Gebrauch gemacht Der Konstantentyp E in den Datenerkl rungen von FLNO1 und FLNO2 bewirkt da der Assembler kurze Gleitpunktzahlen generiert der Konstantentyp D bewirkt die Generierung einer langen Gleitpunktzahl Der Exponenten faktor E2 bei FLNO1 bewirkt die Multiplikation des Arguments 2 56 mit 10 und der Skalenfaktor S4 bei FLNO2 erzeugt eine um 4 Sedezimalstellen nach rechts versetzte Mantisse Weitere M glichkeiten f r Gleitpunkt Datenerkl rungen sind im Handbuch ASSEMBH Beschreibung 1 beschrieben U3119 J Z125 2 251 SD SDR SE SER SXR Gleitpunktbefehle Subtract Normalized Funktion Die Befehle SER SE S
165. inheit sein Ablauf im Detail etwaige von ihm gesetzte Werte der Anzeige die bei seinem Ablauf m glichen Programmunterbrechungen Programmierhinweise ein oder mehrere Beispiele Ausgabe Mai 1993 Datei ASSEMBL PDF BS2000 ist ein eingetragenes Warenzeichen der Siemens Nixdorf Informationssysteme AG Copyright Siemens Nixdorf Informationssysteme AG 1994 Alle Rechte vorbehalten insbesondere auch auszugsweise die der bersetzung des Nachdrucks Wiedergabe durch Kopieren oder hnliche Verfahren Zuwiderhandlungen verpflichten zu Schadenersatz Alle Rechte vorbehalten insbesondere f r den Fall der Patenterteilung oder GM Eintragung Lieferm glichkeiten und technische nderungen vorbehalten U3119 J Z125 2 U3119 J Z125 2
166. isches ODER verkn pft Die ODER Verkn pfung ver ndert weder den Befehl selbst noch das Register R1 sondern beeinflu t nur die Befehlsinterpretation des Ziel Befehls Wenn R1 0 ist wird der Ziel Befehl ohne vorige ODER Verkn pfung ausgef hrt Der Ziel Befehl kann 2 4 oder 6 Byte lang sein Er wird so ausgef hrt als st nde er an der Speicherstelle des Befehls EX und h tte dessen L nge von 4 Byte Wenn z B der Ziel Befehl ein Befehl BALR ist wird als Befehlsfolgeadresse die Folgeadresse des Befehls EX gespeichert nicht die des BALR und als ILC der Wert 10 nicht 01 Der Ziel Befehl des Befehls EX darf nicht seinerseits ein EX sein andernfalls erfolgt eine Programmunterbrechung wegen Adre fehlers Die mit D2 X2 B2 bestimmte Adresse mu geradzahlig sein andernfalls erfolgt eine Programmunterbrechung ebenfalls wegen Adre fehlers Wenn der Ziel Befehl kein korrekter Befehl des Befehlsvorrats ist ist das Ergebnis des EX nicht vorhersehbar Anzeige Die Anzeige wird in der Weise ver ndert wie sie der Ziel Befehl ver ndert U3119 J Z125 2 Allgemeine Befehle EX Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Lesezugriff auf Ziel Befehl unm glich Adre fehler XMHEH Ziel Befehl ist seinerseits ein EX Befehl oder D2 X2 B2 keine Halbwortgrenze Programmierhinweise Die durch den Befehl EX bewirkte ODER Verkn pfung des zweiten Byte eines Ziel Befehls erm glicht die
167. it einem Zeichenfeld im Hauptspeicher Die Anzeige wird gem dem Vergleichsergebnis gesetzt Assemblerformat Name Operanden Bemerkungen R1 13 D2 82 B0000 M3 BINT Maschinenformat 0 20 31 Beschreibung Die 4 Bit der Maske M3 entsprechen eins zu eins den 4 Byte des Mehrzweckregisters R1 von links nach rechts sowohl in der Maske wie im Register Diejenigen Byte in R1 denen Einsen in der Maske entsprechen werden als zusammenh ngendes Feld betrach tet dieses Feld wird mit dem durch D2 B2 adressierten Zeichenfeld des Hauptspei chers logisch verglichen Anzeige 0 Zero Die ausgew hlten Byte von R1 sind Zeichenfeld oder die Maske ist 0 6 1 Minus Die ausgew hlten Byte von R1 sind lt Zeichenfeld 2 Plus Die ausgew hlten Byte von R1 sind gt Zeichenfeld 3 Nicht verwendet Programmunterbrechungen Ursachen Lesezugriff auf Operand2 unm glich auch wenn M3 046 ist U3119 J Z125 2 Allgemeine Befehle CLM Programmierhinweise Die L nge in Byte des Hauptspeicherfelds ist gleich der Anzahl der Einsen in der Maske Bei Verwendung einer Maske aus lauter Einsen B 1111 leistet der Befehl CLM das gleiche wie der Befehl CL aber das Hauptspeicherfeld braucht nicht an einer Wort grenze ausgerichtet zu sein Beispiel CLM 3 B 1001 C LR Der Beispielbefehl vergleicht logisch das h chstwertige und das niedrigstwertige Byte des Mehrzweckregisters 3 mit der Zeichenf
168. itt ein wenn die Charakteristik des Endergebnisses kleiner als 0 wird und seine Mantisse von Null verschieden ist Wenn in diesem Falle das Bit f r Exponenten Unterlauf in der Programmaske 1 ist BS2000 Standard erfolgt eine Pro grammunterbrechung Mantisse und Vorzeichen sind korrekt aber die Charakteristik ist um 128 zu gro andernfalls erfolgt keine Programmunterbrechung und als Quotient wird eine echte Null erzeugt Bei DXR tritt Exponenten Unterlauf nicht ein wenn nur beim unteren Teil des Endergebnisses die Charakteristik kleiner als O wird In diesem Falle ist dessen Charakteristik um 128 zu gro Exponenten berlauf oder Unterlauf kann erst beim Endergebnis auftreten nicht schon wenn w hrend der Zwischenrechnungen eine Charakteristik ber oder unterl uft Divisionsfehler tritt ein wenn die Mantisse des Divisors 0 ist auch wenn der Dividend ebenfalls 0 ist Es erfolgt eine Programmunterbrechung Wenn die Mantisse des Dividenden 0 ist aber die des Divisors 0 ist wird als Ender gebnis eine echte Null erzeugt Das Vorzeichen des Quotienten wird nach den blichen algebraischen Regeln ermittelt eine echte Null hat jedoch stets ein positives Vorzeichen Die Bitstellen 16 bis 23 des Befehls DXR werden ignoriert U3119 J Z125 2 231 DD DDR DE DER DXR Gleitpunktbefehle 232 Anzeige Nicht ver ndert Programmunterbrechungen Art Ursachen DE DD Lesezugriff auf Operand2 unm glich DXR auf einer Ze
169. izit im Befehl bestimmt Bei impliziter L nge ist diese bei der Befehlsbeschreibung dargestellt bei expliziter Angabe in Befehlen des SS Typs wird die Operanden L nge durch ihren Wert minus 1 im Befehl bestimmt und zwar in einem Feld das in der obi gen Darstellung durch L 1 oder L1 1 oder L2 1 bezeichnet ist Der Assembler 1 generiert die Inhalte dieser L ngenfelder automatisch indem er die Operanden L nge um 1 reduziert 25 Allgemeine Befehle A AR 3 Allgemeine Befehle Add Funktion Die Befehle AR und A addieren zwei 32 Bit lange Festpunktzahlen vorzeichengerecht Die Anzeige wird gem dem Wert der Summe gesetzt Assemblerformate AR R1 R2 A R1 D2 X2 B2 D2 X2 B2 Wortgrenze Maschinenformate Beschreibung Durch den Befehl AR wird der Inhalt des Mehrzweckregisters R2 durch den Befehl A wird das mit D2 X2 B2 adressierte Wort des Hauptspeichers vorzeichengerecht zum Inhalt des Mehrzweckregisters R1 addiert Beide Operanden werden als 32 Bit lange Bin rzahlen mit Vorzeichen Festpunktzahlen behandelt Die Summe ist ebenfalls eine 32 Bit lange Festpunktzahl und ersetzt den urspr nglichen Inhalt des Mehrzweckregi sters R1 U3119 J Z125 2 27 A AR 28 Allgemeine Befehle Festpunkt berlauf entsteht wenn die Summe gr er als 231 1 bzw kleiner als 231 wird In diesem Fall ist das Ergebnis in R1 um 23 zu klein bzw zu gro die Anzeige wird dann auf 3 Overflow gesetzt und es erfolgt eine P
170. jedoch eine Sedezimal stelle mehr Diese niedrigstwertige Sedezimalstelle wird Schutzziffer engl guard digit genannt Die Schutzziffer erh ht normalerweise die Genauigkeit des Ergebnisses Ihre genaue Wirkung ist jedoch befehlsspezifisch und deshalb bei jedem einzelnen Gleit punktbefehl beschrieben Befehlsvorrat Es gibt 52 Gleitpunktbefehle Diese bewirken die Addition Subtraktion Multiplikation und Division von zwei Gleitpunktzahlen sowie das Laden Speichern Runden und Halbie ren von einzelnen Gleitpunktzahlen Alle Befehle verwenden entweder ein Gleitpunktregi ster und einen Hauptspeicher Operanden oder zwei Gleitpunktregister F r kurze und lange Gleitpunktzahlen gibt es Gleitpunktbefehle f r alle genannten Aufga ben w hrend es f r erweiterte Gleitpunktzahlen nur Befehle zur Addition Subtraktion Multiplikation und Division gibt Die meisten Befehle erzeugen als Ergebnis Gleitpunktzahlen desselben Formats wie die Eingangs Operanden Die Multiplikationsbefehle erzeugen jedoch aus kurzen bzw langen Eingangsoperanden ein langes bzw erweitertes Produkt und einige Divisionsbefehle erzeugen aus einem langen bzw erweiterten Dividenden einen kurzen bzw langen Quotienten Zwei Run dungs Befehle erm glichen schlie lich die Rundung vom erweiterten ins lange Format und vom langen ins kurze Format U3119 J Z125 2 Gleitpunktbefehle berblick Die meisten Befehle normalisieren ihr Ergebnis Allerdings gibt es zur Addition
171. ktion Der Befehl SLL verschiebt eine 32 Bit lange Bin rzahl in einem Mehrzweckregister um eine angegebene Anzahl von Bin rstellen logisch nach links Die Anzeige wird nicht ver ndert Assemblerformate SLL R1 D2 B2 oder auch SLL Rl lt anzahl gt Maschinenformat 0 8 12 16 20 31 Beschreibung Der Inhalt des Mehrzweckregisters R1 wird als 32 Bit lange Bin rzahl ohne Vorzeichen behandelt Die durch D2 B2 bestimmte Adresse wird nicht als Datenadresse verwendet stattdes sen bilden die rechten 6 Bit dieser Adresse die Anzahl der Bin rstellen um die die Bin rzahl nach links verschoben wird Diese Anzahl liegt im Bereich zwischen 0 und 634o Die h herwertigen Bin rstellen von D2 B2 werden ignoriert Bei der Linksverschiebung werden alle 32 Bitstellen verschoben Rechts freiwerdene Bit stellen werden mit O gef llt links ber die Bitstelle 0 hinausgeschobene Bin rstellen gehen verloren Die Bitstellen 12 bis 15 des Befehls werden ignoriert Anzeige Nicht ver ndert Programmunterbrechungen Keine U3119 J Z125 2 Allgemeine Befehle SLL Programmierhinweise Wenn B2 0 ist bestimmt D2 allein die Verschiebeanzahl in diesem Fall darf die Angabe von B2 im Assemblerformat entfallen Wenn die Verschiebeanzahl 0 modulo 64 ist bleibt das Register R1 und die Anzei ge unver ndert Die Verschiebung um eine variable Anzahl von Bitstellen wird erreicht indem man die Variable in das
172. l eine Programmunterbrechung eintritt Mit dem Befehl SPM Setzen Programmaske kann ein Anwenderprogramm die Vorbesetzung ndern Bei AU und AUR werden die rechten 32 Bit der verwendeten Gleitpunktregister igno riert und bleiben unver ndert Die nicht normalisierende Addition ist bis auf folgende Unterschiede gleichwertig zur normalisierenden Addition Das Ergebnis wird nicht normalisiert Exponenten Unterlauf kann nicht eintreten Die Schutzziffer wird nicht zur Ermittlung von Signifikanz herangezogen F r erweiterte Gleitpunktoperanden gibt es zwar einen Befehl zur normalisierenden Addition AXR aber keinen Befehl zur nicht normalisierenden Addition Beispiel Siehe das Beispiel f r nicht normalisierende Subtraktion SU U3119 J Z125 2 227 CD CDR CE CER Gleitpunktbefehle 228 Compare Funktion Die Befehle CER CE CDR und CD vergleichen zwei Gleitpunktzahlen Die Anzeige wird gem dem Vergleichsergebnis gesetzt Assemblerformate kurze Operanden CER R1 R2 Rl R2 0 2 4 oder 6 CE R1 D2 X2 B2 R1 0 2 4 oder 6 und A lange Operanden CDR R1 R2 R1 R2 0 2 4 oder 6 CD R1 D2 x2 B2 R1 0 2 4 oder 6 Maschinenformate CER RR x 39 R Kurze Operanden Eea CE RX Kurze Operanden CDR RR Lange Operanden EZ EEE 0 12 CD RX X69 D2 Lange Operanden Beschreibung Der Vergleich wird so durchgef hrt als w rde eine normalisierende Subtraktion stattfin d
173. l ist eine solche bei der die h chstwer tige Mantissenstelle ungleich O ist Wenn die h chstwertige Sedezimalstelle der Man tisse 0 ist wird die Gleitpunktzahl nicht normalisiert genannt Nicht normalisierte Gleitpunktzahlen werden normalisiert indem die Mantisse um die Anzahl f hrender Sedezimal Nullen nach links geschoben und die Charakteristik um diese Anzahl vermindert wird Eine Gleitpunktzahl deren Mantisse 0 ist kann nicht normalisiert werden ihre Charak teristik wird entweder 0 gesetzt oder bleibt unver ndert je nachdem ob die Gleitpunk toperation bestimmt da in diesem Falle eine echte Null erzeugt werden soll oder nicht Die Additions und Subtraktions Befehle mit Gleitpunktoperanden des erweiterten For mats sowie alle Multiplikations Divisions und Halbierungs Befehle normalisieren das Ergebnis automatisch Die Addition und Subtraktion mit Gleitpunktoperanden des kur zen oder langen Formats k nnen sowohl mit normalisiertem als auch mit nicht normali siertem Ergebnis veranla t werden Alle anderen Befehle normalisieren ihre Ergebnisse nicht Bei den Befehlen die keine Normalisierung durchf hren werden f hrende Sedezimal Nullen nicht eliminiert Das Ergebnis kann je nach Eingangsoperanden entweder normali siert oder auch nicht normalisiert sein Die Eingangsoperanden d rfen bei allen Gleitpunktbefehlen normalisiert oder nicht nor malisiert sein Bei den Multiplikations und Divisions Befehlen werden
174. l oder Lesezugriff auf Operand2 unm glich D2 X2 B2 keine Wortgrenze Adre fehler U3119 J Z125 2 125 O OC Ol OR Allgemeine Befehle Programmierhinweise Die OR Befehle setzen im ersten Operanden alle Bitstellen auf 1 denen im zweiten Operanden eine Bitstelle mit dem Wert 1 gegen berliegt und lassen die brigen Bit stellen des ersten Operanden unver ndert Die Verarbeitung der Operanden erfolgt byteweise von links nach rechts Bei OC d rfen sich die Operanden berlappen Dabei werden allerdings i a fr here Byte Operationen durch sp tere wieder ge ndert Wenn beim OR Befehl Ri R2 ist also das Mehrzweckregister R1 mit sich selbst ge ODER t wird erfolgt keine nderung des Inhalts von R1 aber die Anzeige wird gesetzt Bei Anwendungen der Befehle Ol und OC in Multiprozessor Anlagen ist folgendes zu beachten Speicherzugriffe des ersten Operanden der Befehle Ol und OC bestehen aus dem Lesen eines Byte aus dem Speicher und dem anschlie enden Abspeichern des ver nderten Wertes in den Speicher Diese Lese und Abspeicherzugriffe auf ein einzel nes Byte geschehen nicht unbedingt sofort hintereinander wenn ein weiterer Prozes sor oder ein weiteres Programm oder ein Kanalprogramm Ein Ausgabe versucht diese Speicherstelle zu ndern Eine sichere Methode zum Update eines gemeinsam benutzten Speicherworts ist im Anhang 7 6 sowie in den Programmierhinweisen der Befehle CS und CDS beschrieben
175. lauf tritt ein wenn die Charakteristik des Endergebnisses gr er als 127 wird Es erfolgt dann eine Programmunterbrechung Vorzeichen und Mantisse sind korrekt aber die Ergebnis Charakteristik en sind um 128 zu klein Exponenten Unterlauf tritt ein wenn die Charakteristik des Endergebnisses kleiner als 0 wird Wenn in diesem Falle das Bit f r Exponenten Unterlauf in der Programmaske 1 ist BS2000 Standard erfolgt eine Programmunterbrechung Vorzeichen und Mantisse sind korrekt aber die Ergebnis Charakteristik en sind um 128 zu gro andernfalls erfolgt keine Programmunterbrechung und als Endergebnis wird eine echte Null er zeugt Beim Befehl SXR tritt Exponenten Unterlauf nicht ein wenn nur beim unteren Teil des Ergebnisses die Charakteristik kleiner als O wird In diesem Falle ist dessen Charakteri stik um 128 zu gro gesetzt U3119 J Z125 2 253 SD SDR SE SER SXR 254 Gleitpunktbefehle Anzeige O Zero Die Mantisse des Ergebnisses ist 0 1 Minus Ergebnis ist lt 0 2 Plus Ergebnis ist gt 0 3 Nicht verwendet Programmunterbrechungen Adre umsetzungsfehler Adre fehler Exponenten berlauf Signifikanz Exponenten Unterlauf Programmierhinweise Ursachen SE SD Lesezugriff auf Operand2 unm glich falsche Gleitpunktregisterangabe oder D2 X2 B2 keine Doppel Wortgrenze Charakteristik der Differenz gt 127 Mantisse 0 Charakteristik 0 und Maskenbit f r Signifikanz 1 Charakteristik der
176. ldet mit der Charakteristik summe minus 64 und dem algebraisch ermittelten Vorzeichen ein Zwischenergebnis Die Mantisse des Zwischenergebnisses ist exakt Wenn sie eine f hrende Sedezimal Null enth lt wird sie um eine Sedezimalstelle nach links geschoben und die Charakteristik um 1 vermindert Abschlie end wird das Endergebnis erzeugt indem das Zwischener gebnis bei ME und MER mit 2 sedezimalen Nullen auf 14 Sedezimalstellen verl ngert und bei den brigen Befehlen auf 14 bzw 28 Sedezimalstellen gek rzt wird Exponenten berlauf tritt ein wenn die Charakteristik des Endergebnisses gr er als 127 wird und seine Mantisse von Null verschieden ist Es erfolgt dann eine Program munterbrechung Mantisse und Vorzeichen sind korrekt aber die Charakteristik des Ergebnisses ist um 128 zu klein Bei MXDR MXD und MXR ist ggf auch die Charakteri stik des unteren Teils um 128 zu klein Exponenten berlauf kann erst beim Endergebnis auftreten nicht schon wenn beim Zwischenergebnis eine Charakteristik berl uft Exponenten Unterlauf tritt ein wenn die Charakteristik des Endergebnisses kleiner als 0 wird und seine Mantisse von Null verschieden ist Wenn in diesem Falle das Bit f r Exponenten Unterlauf in der Programmaske 1 ist BS2000 Standard erfolgt eine Pro grammunterbrechung U3119 J Z125 2 249 MD MDR ME MER MXD MXDR MXR Gleitpunktbefehle 250 Mantisse und Vorzeichen sind korrekt aber die Charakteristik des Ergebnis
177. le ungeeig net zur Verwendung in Programmen die sowohl im 24 Bit Adressierungsmodus als auch im 31 Bit Adressierungsmodus ablaufen sollen In solchen Programmen sollten statt BAL oder BALR die Befehle BAS oder BASR verwendet werden Die von den Befehlen BAL und BALR gelieferten Werte der Anzeige CC oder der Programmaske P Mask k nnen in portabler Weise mit dem Befehl IPM gewonnen werden Man beachte folgenden Unterschied zwischen BALR und BAL bei BALR wird die Sprungadresse durch den Inhalt bei BAL jedoch durch die Adresse des zweiten Operanden bestimmt 35 BAS BASR 36 Allgemeine Befehle Branch and Save Funktion Die Befehle BASR und BAS speichern den momentanen Adressierungsmodus und die Befehlsfolgeadresse in ein Mehrzweckregister und verzweigen unter Beibehaltung des momentanen Adressierungsmodus an eine angegebene Adresse Die Anzeige wird nicht ver ndert Assemblerformate BASR R1 R2 BAS R1 D2 X2 B2 Maschinenformate 0 Beschreibung Der momentane Adressierungsmodus wird in die Bitstelle 0 des Mehrzweckregisters R1 und die Befehlsfolgeadresse wird in die Bitstellen 1 bis 31 des Mehrzweckregisters R1 gespeichert Der 24 Bit Adressierungsmodus wird durch den Wert 0 der 31 Bit Adres sierungsmodus wird durch den Wert 1 an der Bitstelle 0 dargestellt Anschlie end wird unter Beibehaltung des momentanen Adressierungsmodus beim Befehl BASR an die im Mehrzweckregister R2 enthaltene Adresse und beim Befe
178. len Dezimalbefehlen dem Hauptspeicher entnommen bzw dorthin erzeugt Es gibt keine Register Operan den allerdings sind bei einigen Dezimalbefehlen Mehrzweckregister f r besondere Anzei gen beteiligt Die L nge einer Dezimalzahl in Byte wird bei allen Dezimalbefehlen im Befehl selbst angegeben und ist nicht Teil der Dezimalzahl selbst Der Assembler 1 erleichtert die L ngenbestimmung erheblich Die von den Dezimalbefehlen verarbeiteten Dezimalzahlen sind in einem von zwei For maten im Hauptspeicher gespeichert entweder im entpackten oder im gepackten For mat Das entpackte Format in anderem Zusammenhang auch gezontes Format genannt ist das Format nach der Eingabe z B von einer Tastatur oder f r die Aus gabe z B auf einen Drucker das gepackte Format ist das vorausgesetzte Format f r die arithmetische Behandlung oder f r den Vergleich von Dezimalzahlen Im Assembler sind Dezimalzahlen in beiden Formaten definierbar und zwar durch die Konstantentypen Z bzw P siehe unten Nachfolgend werden die beiden Formate n her erl utert U3119 J Z125 2 181 berblick 182 Dezimalbefehle Entpacktes Format Byte 1 2 L Beim entpackten oder gezonten Format von Dezimalzahlen ist jede Dezimalstelle in einem Byte dargestellt die Einerstelle im letzten L ten Byte die Zehnerstelle im vorletz ten L 1 ten Byte die Hunderterstelle im vorvorletzten L 2 ten Byte u s f Der numerische Wert jeder Dezimalst
179. ler gt 2 1 STD 0 TMPDWORD XI TMPDWORD 4 X 80 L 0 TMPDWORD 4 Festpunktzahl in MZ Reg 0 Daten dazu TMPDWORD DS D TWOEX31 DC X 4E00000080000000 8 1677 1614 231 Die FPTOFL Routine tranformiert zun chst die zu konvertierende Festpunktzahl aus dem Bereich 231 231 1 in den Bereich 0 232 1 indem sie modulo 232 den Wert 231 addiert dies geschieht durch Invertierung der Vorzeichenstelle mittels XI Danach macht sie diese Zahl zum rechten Teil der Mantisse einer langen Gleitpunktzahl mit dem Exponenten 14 d h der Charakteristik 64 14 4E s Schlie lich subtra hiert sie davon die zun chst addierte 231 wieder und normalisiert das Ergebnis Die FLTOFP Routine addiert zun chst nicht normalisiert den Wert 231 auf die zu kon vertierende Gleitpunktzahl und schiebt dabei etwaige nicht ganzzahlige Sedezimalstel len rechts hinaus Es erfolgt keine Rundung Wenn die Summe lt 0 ist war die Gleit punktzahl lt 23 also zu klein f r den Wertebereich von Festpunktzahlen wenn die Summe gt 23 ist war sie zu gro letzteres wird daran erkannt da die linken 6 Sedezimalstellen 0 sind Vom rechten Teil der Mantisse mu noch die zun chst addierte 231 subtrahiert werden was wie bei FPTOFL durch einen Befehl XI ge schieht Der abschlie ende L Befehl l dt die fertige Festpunktzahl ins Mehrzweckregi ster 0 U3119 J Z125 2 Gleitpunktbefehle AD ADR AE AER AXR Add Normalized Funktion Die Befehle AER
180. licht es die vom BS2000 mit 1111 vorbesetzte Program maske zu ndern Dadurch ist es dem Anwenderprogramm m glich beim Eintreten der nachfolgend genannten vier Arten von Ereignissen die sonst stattfindende Pro grammunterbrechung zu unterbinden Daf r kann es durchaus gute Gr nde geben Zum Beispiel wird man regelm ig in Programmen die intensiv Gleitpunktoperatio nen durchf hren die unvermeidlichen Programmunterbrechungen wegen Signifikanz auf diese Weise ausschalten Es ist aber guter Programmiierstil anschlie end die Programmaske wieder auf ihren urspr nglichen Zustand zu setzen Die Bit der Programmaske haben von links nach rechts folgende Bedeutung Bit der Programmaske Bitstelle in R1 Bedeutung 0 4 Festpunkt berlauf 1 5 Dezimal Uberlauf 2 6 Exponenten Unterlauf 3 7 Signifikanz Beispiel T Exponenten Unterlauf 15 B 1000 B 00111100 15 be Signifikanz Nach Ausf hrung des SPM ist die Anzeige auf 3 Overflow gesetzt und die Program munterbrechungen Exponenten Unterlauf und Signifikanz sind unterbunden U3119 J Z125 2 147 SRA 148 Allgemeine Befehle Shift Right Single Funktion Der Befehl SRA verschiebt eine 32 Bit lange Festpunktzahl in einem Mehrzweckregister vorzeichengerecht um eine angegebene Anzahl von Bin rstellen nach rechts Die Anzeige wird gem dem Wert des Ergebnisses gesetzt Assemblerformate SRA R1 D2 B2 oder auch SRA Rl lt anzahl gt Maschinenf
181. llg Allg Allg Allg Allg Allg Allg Allg Allg Allg Befehle nach Operationscode Assembler format R1 R1 R1 D1 D2 B2 D2 B2 B1 I2 12 B1 I2 B1 I2 B2 B2 R1 R3 D2 B R1 D2 xX2 B2 R1 D2 xX2 B2 R1 R3 D2 B 2 2 R3 D2 B2 R3 D2 B2 R3 D2 B2 R3 D2 B2 285 Befehle nach Operationscode nemo Bef L nge Code Typ in Byte U U o w d m 0AA OOA E e N 286 An zeige Bef art Assembler format D1 L B1 D2 B2 D1 L B1 D2 B2 D1 L1 B1 D2 B2 I3 D1 L1 B1 D2 L2 B2 D1 L1 B1 D2 L2 B2 DI L1 B1 D2 L2 82 D1 L1 B1 D2 L2 B2 D1 L1 B1 D2 L2 B2 DI L1 B1 D2 L2 B2 D1L L1 B1 D2 L2 B2 D1 L1 B1 BD2 112 82 D14L1 BTV D24L2 8B2 U3119 J Z125 2 Erweiterter mnemotechnischer Operationscode 7 4 Erweiterter mnemotechnischer Operationscode Zur Erleichterung f r Programmierer verf gt der Assembler ber erweiterte mnemotech nische Operationscodes Sie erm glichen es bedingte Spr nge einschlie lich ihrer Sprungmaske mnemotechnisch darzustellen Der Assembler l st solche erweiterte mne motechnische Operationscodes in die Befehle BC bzw BCR auf und setzt die Maske Bei Befehlen mit zwei Bedeutungen z B Minus Mixed ist der Befehl mit der zweiten Bedeutung Mixed nach dem Befehl TM zu verwenden Assemblerformat mit erweitertem mnemotechnischem Operationscode N DOS E
182. lt FO F1 C2 Der Programmierer kann auch bei der Definition einen Dezimal punkt einf gen der aber weder in der Speicherdarstellung noch bei den Dezimalbefeh len ber cksichtigt wird U3119 J Z125 2 Dezimalbefehle berblick Gepacktes Format A Byte 1 2 L Beim gepackten Format von Dezimalzahlen ist jede Dezimalstelle in einem Halbbyte dar gestellt Die Einerstelle ist im linken Halbbyte des letzten L ten Byte die Zehnerstelle im rechten Halbbyte des vorletzten L 1 ten Byte die Hunderterstelle im gleichen L 1 ten Byte aber in dessen linken Halbbyte gespeichert u s f Der numerische Wert jeder Dezimalstelle ist durch sein sedezimales quvalent repr sen tiert do d4 d 0 1 9 Das Vorzeichen der Dezimalzahl ist im rechten Halbbyte des letzten niedrigstwertigen Byte dargestellt Ein positives Vorzeichen wird durch die Sedezimalwerte A oder C oder E oder F4 bestimmt ein negatives Vorzeichen durch die Sedezimalwerte B oder D46 Ein L Byte langes gepacktes Format kann eine bis zu 2L 1 stellige Dezimalzahl aufneh men wobei die oberen Halbbyte 0 enthalten wenn die Dezimalzahl weniger als 2L 1 signifikante Dezimalstellen umfasst Die maximale L nge des gepackten Formats einer Dezimalzahl betr gt 16 Byte so da bis zu 31 stellige Dezimalzahlen in diesem Format dargestellt werden k nnen Der absolute Wertebereich W von gepackten Dezi malzahlen betr gt demnach 0 lt W lt 103 1 U3
183. lwortgrenzen Neben den Hauptspeicher Elementen Bit und Byte werden noch die Hauptspeicher Ele mente Wort Halbwort und Doppelwort benutzt Ein Halbwort ist ein 2 Byte langer Hauptspeicherbereich mit einer durch 2 ohne Rest teilbaren also geradzahligen Anfangsadresse Dementsprechend ist ein Wort ein 4 Byte langer Hauptspeicherbereich dessen Anfangsadresse durch 4 ohne Rest teilbar ist und ein Doppelwort ist ein 8 Byte langer Hauptspeicherbereich mit einer durch 8 ohne Rest teilbaren Anfangsadresse Umgekehrt wird eine durch 2 bzw 4 bzw 8 ohne Rest teil bare Adresse gew hnlich Halbwortgrenze bzw Wortgrenze bzw Doppelwortgrenze genannt Alle Befehle m ssen in allen Zentraleinheiten an einer Halbwortgrenze ausgerichtet sein diese Ausrichtung wird automatisch vom Assembler 1 ausgef hrt Dar berhinaus m s sen bei vielen Befehlen die Operanden einer Ausrichtungsbedingung gen gen Zwar ist diese zweite Forderung abh ngig von der Zentraleinheit bei lteren Zentraleinheiten f hrt eine fehlende Operandenausrichtung z B bei dem Befehl L zu einer Programmun terbrechung mit dem Gewicht 5C w hrend die neueren Zentraleinheiten diese Ope randen verarbeiten aber sie ist in diesem Handbuch so dargestellt wie sie in der restriktivsten Zentraleinheit gilt Aus Performancegr nden wird empfohlen auch in Pro grammen die auf neueren Anlagen laufen die Operanden auf die entsprechenden Grenzen auszurichten siehe Handbuch
184. m dem Wert der Differenz gesetzt Assemblerformate SR R1 R2 S R1 D2 X2 B2 D2 X2 B2 Wortgrenze Maschinenformate SR RR x 1B R2 Beschreibung Durch den Befehl SR wird der Inhalt des Mehrzweckregisters R2 durch den Befehl S wird das mit D2 X2 B2 adressierte Wort des Hauptspeichers vorzeichengerecht vom Inhalt des Mehrzweckregisters R1 subtrahiert Beide Operanden werden als 32 Bit lange Bin rzahlen mit Vorzeichen Festpunktzahlen behandelt Die Differenz ist ebenfalls eine 32 Bit lange Festpunktzahl und ersetzt den urspr nglichen Inhalt des Mehrzweckregi sters R1 Festpunkt berlauf entsteht wenn die Differenz gr er als 231 1 bzw kleiner als 231 wird In diesem Fall ist das Ergebnis in R1 um 232 zu klein bzw zu gro die Anzeige wird dann auf 3 Overflow gesetzt und es erfolgt eine Programmunterbrechung wenn in der Programmaske das Bit f r Festpunkt berlauf 1 ist BS2000 Standard Anzeige O Zero Differenz 0 1 Minus Differenz lt 0 2 Plus Differenz gt 0 3 Overflow Festpunkt berlauf U3119 J Z125 2 129 S SR 130 Allgemeine Befehle Programmunterbrechungen Art Ursachen S Lesezugriff auf Operand2 unm glich S D2 X2 B2 keine Wortgrenze Differenz gt 2 1 oder lt 2 1 Adre umsetzungsfehler Adre fehler Festpunkt berlauf Programmierhinweise Festpunkt berlauf entsteht dann wenn ein Bin rstellen berlauf in die Vorzeichen stelle ungleich ist dem
185. m oO N ea pal N NVOoXxHmm zo N v yv www wy wW E OON DIDID DVDD DDUVO D2 X2 B2 P D2 X2 B2 PR R2 U3119 J Z125 2 ATI NH ke Operand R2 R2 R2 R2 D2 X2 B2 D2 X2 B2 R2 Bedeutung Branch Branch when Equal Branch when High Branch when Low Branch when Minus Mixed Branch when Not Equal Branch when Not High Branch when Not Low Branch when Not Minus Mixed Branch when Not Overflow Ones Branch when Not Plus Branch when Not Zero Zeroes Branch when Overflow Ones Branch when Plus Branch Register Branch Register when Equal Branch Register when High Branch Register when Low Branch Register when Minus Mixed Branch Register when Not Equal Branch Register when Not High Branch Register when Not Low Branch Register when Not Minus Mixed Branch Register when Not Overflow Ones Branch Register when Not Plus Branch Register when Not Zero Zeroes Branch Register when Overflow Ones Branch Register when Plus Branch Register when Zero Zeroes Branch when Zero Zeroes o Operation o Operation Register 287 Zweierpotenzen 7 5 288 Zweierpotenzen 231 2 147 Vorzeichenlose 32 Bit lange Bin rzahl Sedezimale Darstellung U3119 J Z125 2 7 6 Gemeinsam benutzte Daten in Multiprozessor Anlagen Zugriff auf gemeinsam benutzte Daten in Multiprozessor Anlagen Der konkurrierende Zugriff
186. manden lange Summe AWR R1 R2 R1 R2 0 2 4 oder 6 AW R1 D2 X2 B2 R1 0 2 4 oder 6 und Maschinenformate AUR RR X 3E R2 Kurze Operanden zz 0 12 Lange Operanden AW RX X 6E z N o N U3119 J Z125 2 225 AU AUR AW AWR Gleitpunktbefehle Beschreibung Zun chst werden die Charakteristiken der beiden Operanden verglichen die Mantisse des Operanden mit der kleineren Charakteristik wird um die Differenz der Charakteristi ken nach rechts geschoben und seine Charakteristik wird um denselben Betrag erh ht so da die Charakteristiken gleich werden Die zuletzt hinausgeschobene Sedezimalzif fer wird als Schutzziffer aufbewahrt Die Schutzziffer des anderen Operanden oder bei der Operanden wenn vor der Addition die Charakteristiken gleich waren wird 0 gesetzt Anschlie end werden die beiden Mantissen einschlie lich der Schutzziffern unter Ber ck sichtigung der Vorzeichen addiert Die Summe bildet ein Zwischenergebnis Das Zwi schenergebnis besteht beim kurzen Format aus 7 und beim langen Format aus 15 Sede zimalstellen Wenn ein berlauf aufgetreten ist wird das Zwischenergebnis um eine Sedezimalstelle nach rechts geschoben dann in die links freigewordene Sedezimalstelle eine 1 einge setzt und die Charakteristik um 1 erh ht Signifikanz tritt ein wenn das Zwischenergebnis ausschlie lich Schutzziffer 0 ist Wenn in diesem Fall das Bit f r Signifikanz in der Programm
187. mehrerer Programme Tasks Contingency Prozesse auf gemeinsame Daten im Hauptspeicher mu wegen der M glichkeit simultaner Speicher zugriffe in Multiprozessor Anlagen bzw wegen der Unterbrechbarkeit sorgf ltig program miert werden Sowohl schreibende als auch lesende Zugriffe auf gemeinsam benutzte Daten sind mit einer Sperre Lock gegen eine Verf lschung vor konkurrierenden Schreibzugriffen zu sch tzen ein Datum kann auch selbst als Sperre behandelt wer den Diese Sperre kann ein Byte ein Wort oder ein Doppelwort lang sein Eine bin re Sperre von einem Wort L nge auch Lock Wort genannt kann entweder 0 f r nicht belegt oder einen anderen Wert wie X FFFFFFFF f r belegt enthalten In einer Z hler Sperre wird ein Z hler herauf oder heruntergez hlt Im folgenden werden die Begriffe sicheres Lesen sicheres Schreiben sichere Befehle oder sichere Operation verwendet das hei t Kein anderer Prozessor kann w hrend des Schreib oder Lesevorgangs ein Byte inner halb des Wortes oder Doppelwortes oder ein Bit innerhalb des Byte oder Wortes oder Doppelwortes ver ndern Nur bestimmte Befehle sind sichere Befehle und damit zum Setzen oder R cksetzen oder Abfragen von Sperren geeignet Absolut sichere Befehle auf allen Anlagen sind CS CDS und TS siehe Kapitel 3 und Abschnitt 7 6 1 Allerdings ben tigen diese Befehle die 10 fache Ausf hrungszeit wie z B ein ST auf manchen Anlagentypen sogar n
188. modus verf gen den Befehl BR Eine vollst ndige Darstellung der Adressierungsmodi und der verschiedenen Pro grammverkn pfungsformen enth lt das Handbuch Einf hrung in die XS Program mierung f r ASSEMBLER Programmierer 2 Beispiel Siehe f r die Verwendung von BSM das Beispiel unter BASSM 48 U3119 J Z125 2 Allgemeine Befehle BXH BXLE Branch on Index Funktion Die Befehle BXH und BXLE addieren den Inhalt eines Mehrzweckregisters zum Inhalt eines anderen Mehrzweckregisters vorzeichengerecht und verzweigen an eine angege bene Adresse wenn die resultierende Summe gr er BXH bzw gleich oder kleiner BXLE ist als der Inhalt eines dritten Mehrzweckregisters Die Anzeige wird nicht ver ndert Assemblerformate BXH R1 R3 D2 B2 BXLE R1 R3 D2 B2 Maschinenformate 0 Beschreibung Zun chst werden die 32 Bit lange Festpunktzahl im Mehrzweckregister R1 und die 32 Bit lange Festpunktzahl im Mehrzweckregister R3 addiert Die Summe wird vorzeichen gerecht als 32 Bit lange Festpunktzahl gebildet aber ein etwaiger bertrag ber die h chstwertige Bin rstelle wird ignoriert Die Summe wird mit der 32 Bit langen Festpunktzahl eines Vergleichsregisters vorzei chengerecht verglichen Nach dem Vergleich wird die Summe in das Mehrzweckregister R1 gespeichert Das Vergleichsregister ist das Mehrzweckregister R3 1 wenn R3 gerad zahlig ist andernfalls das Mehrzweckregister R3 Anschlie end wird an die Adress
189. n DFIELD1 MASKE DFIELD1 P 123456789 DFIELD1 nachher 1 234 567 89 Anzeige 2 Plus ne F llzeichen X20 Ziffernselektor en Apostroph 3X207 3 Ziffernselektoren Ghat Punkt X 202120 Ziffernselektor Signifikanzstar ter Ziffernselektor Er Komma 2X 20 2 Zziffernselektoren DFIELD2 11 SFIELD DFIELD2 nachher 1002 3 Anzeige 1 Minus GUEN F llzeichen 2X 2021207 erste 2 Masken X 22 Feldtrenner X 202120 dritte Maske BPL la 3 aufzubereitende Zahlen DFIELD3 7 X 402021206B2020 X 40 Leerzeichen X 6B Punkt 1 DFIELD3 3 Register 1 auf Signifikanzstarter 1 DFIELD3 7 ACCOUNT ACCOUNT 3 Byte lange READY gepackte Dezimalzahl 1 0 0 1 READY 0 1 Wenn im Beispieli statt P 123456789 als aufzubereitende Zahl PL5 1 angegeben w re w rde die Zeichenfolge FE ER ER EEE GR 0 01 entstehen Das Beispiel2 zeigt die Wirkung von Minus Vorzeichen und Feldtrenner auf den Signifi kanz Indikator Wenn die erste aufzubereitende Dezimalzahl statt PL2 1 PL2 1 lautet entsteht in DFIELD2 die Zeichenfolge 1 2 3 weil dann der Signifikanz Indikator durch das Plus Vorzeichen ausgeschaltet wird U3119 J 2125 2 199 ED EDMK 200 Dezimalbefehle Das Beispiel3 zeigt eine Befehlsfolge zur Druckaufbereitung eines Geldbetrages dem je nachdem ob er gt 0 lt 0 oder 0 ist entweder ein ein oder kein Zeichen vorange st
190. n Die Befehle HER und HDR dividieren die Gleitpunktzahl im Gleitpunktregister R2 durch 2 und speichern das normalisierte Ergebnis ins Gleitpunktregister R1 Die Anzeige wird nicht ver ndert Assemblerformate kurze Operanden HER R1 R2 R1 R2 0 2 4 oder 6 lange Operanden HDR R1 R2 R1 R2 0 2 4 oder 6 Maschinenformate HER RR x 34 2 Kurze Operanden HDR RR 2 Lange Operanden 0 Beschreibung Die bei HER 6 stellige und bei HDR 14 stellige Mantisse der Gleitpunktzahl im Gleitpunk tregister R2 wird um ein Bit nach rechts geschoben und die freigewordene Bitstelle mit 0 gef llt Die rechts aus der Mantisse hinausgeschobene Bitstelle wird links in die Schutzziffer plaziert und die brigen drei Bit der Schutzziffer werden 0 gesetzt Das so entstandene Zwischenergebnis wird einschlie lich der Schutzziffer normalisiert und das Endergebnis in das Gleitpunktregister R1 gespeichert Exponenten Unterlauf tritt ein wenn die Charakteristik des Endergebnisses kleiner als 0 wird und seine Mantisse von Null verschieden ist Wenn in diesem Falle das Bit f r Exponenten Unterlauf in der Programmaske 1 ist BS2000 Standard erfolgt eine Pro grammunterbrechung U3119 J Z125 2 233 HDR HER 234 Gleitpunktbefehle Mantisse und Vorzeichen sind korrekt aber die Charakteristik ist um 128 zu gro andemfalls erfolgt keine Programmunterbrechung und als Endergebnis wird eine echte Null erzeugt Wenn die M
191. n C 6 gesetzt Die rechten Halbbyte bleiben unver ndert 120 U3119 J Z125 2 Allgemeine Befehle N NC NI NR AND Funktion Die Befehle NR N NI und NC bewirken bitweise die logische UND Verkn pfung zweier Operanden Die Anzeige wird gem dem Wert des Ergebnisses gesetzt Assemblerformate NR R1 R2 N R1 D2 X2 B2 D2 X2 B2 Wortgrenze NI D1 B1 I2 x 00 lt I2 lt X FF NC D1 L B1 D2 B2 1 lt L lt 256 Maschinenformate EICHE 16 Beschreibung Die Bit des ersten Operanden werden gem der folgenden Tabelle durch die gegen berliegenden Bit des zweiten Operanden ver ndert Das Ergebnis ersetzt den ersten Operanden U3119 J Z125 2 121 N NC NI NR Allgemeine Befehle Tabelle der UND Verkn pfungen Bitwert Bitwert Bitwert im ersten Operanden im zweiten Operanden im Ergebnis 0 0 0 0 Al 0 1 0 0 1 1 1 Operanden Befehl Operandl Operand2 NR Inhalt von Register R1 Inhalt von Register R2 N Inhalt von Register R1 mit D2 X2 B2 adressiertes Wort NI mit D1 Bl adressiertes Byte Direktoperand I2 NC mit D1 B1 adressiertes Feld mit D2 B2 adressiertes Feld der L nge L Byte der L nge L Byte Anzeige O Zero Ergebnis 0 1 Not Zero Ergebnis 0 2 Nicht verwendet 3 Nicht verwendet Programmunterbrechungen Adre umsetzungsfehler X 48 Lesezugriff auf Operand2 unm glich Lese Schreibzugriff auf Operandl unm glich Lese Schreibzugriff au
192. n ab ebenso wie bei einem Ergebnis mit von O verschiedener Mantisse Wenn als Zwischenergebnis einer Gleitpunkt Addition oder Subtraktion eine Mantisse zustande kommt deren Sedezimalstellen alle 0 sind entsteht Signifikanz Der Be fehl wird zu Ende gef hrt Wenn dann das Bit f r Signifikanz in der Programmaske 1 ist erfolgt eine Programmunterbrechung wobei die Charakteristik korrekt ist aber das Vorzeichen und die Mantisse 0 gesetzt sind Wenn aber bei Signifikanz das zugeh rige Bit 0 ist wird eine echte Null erzeugt und es erfolgt keine Programmunterbre chung Eine echte Null ist eine Gleitpunktzahl deren Vorzeichen Charakteristik Mantisse alle 0 sind Eine echte Null kann als normales arithmetisches Ergebnis entstehen wenn die Operanden entsprechende Werte haben aber auch explizit erzeugt werden und zwar in folgenden F llen 1 Es ist Exponenten Unterlauf entstanden und das entsprechende Maskenbit in der Programmaske ist 0 2 Bei einer Addition oder Subtraktion ist eine Mantisse 0 entstanden und das Mas kenbit f r Signifikanz ist 0 3 Der Operand eines Halbierungs Befehls oder ein oder beide Operanden eines Multi plikations Befehls oder der Dividend eines Divisions Befehls haben eine Mantisse 0 U3119 J Z125 2 Gleitpunktbefehle berblick Normalisierung Eine Gr e l t sich mit gr ter Genauigkeit durch eine Gleitpunktzahl darstellen die normalisiert ist Eine normalisierte Gleitpunktzah
193. n nicht eintreten Anzeige O Zero Die Mantisse des Ergebnisses ist 0 das Vorzeichen ist positiv 1 Minus Ergebnis ist lt 0 2 Plus Ergebnis ist gt 0 3 Nicht verwendet 258 U3119 J Z125 2 Gleitpunktbefehle SU SUR SW SWR Programmunterbrechungen Art Ursachen Adre umsetzungsfehler Adre fehler SU SW Lesezugriff auf Operand2 unm glich falsche Gleitpunktregisterangabe oder D2 X2 B2 keine Doppel Wortgrenze Differenz Charakteristik gt 127 Mantisse 0 Charakteristik 0 und Maskenbit f r Signifikanz 1 Exponenten berlauf Signifikanz Programmierhinweise Durch das BS2000 wird das Bit f r Signifikanz in der Programmaske mit 1 vorbe setzt so da in dem oben genannten Fall eine Programmunterbrechung eintritt Mit dem Befehl SPM Setzen Programmaske kann ein Anwenderprogramm die Vorbeset zung ndern Bei SU und SUR werden die rechten 32 Bit der verwendeten Gleitpunktregister igno riert und bleiben unver ndert Die nicht normalisierende Subtraktion ist bis auf folgende Unterschiede gleichwertig zur normalisierenden Subtraktion Das Ergebnis wird nicht normalisiert Exponenten Unterlauf kann nicht eintreten Die Schutzziffer wird nicht zur Ermittlung von Signifikanz herangezogen F r erweiterte Gleitpunktoperanden gibt es zwar einen Befehl zur normalisierenden Subtraktion SXR aber keinen Befehl zur nichtnormalisierenden Subtraktion Beispiel 0D FLNO1 xX
194. n werden auf korrektes gepacktes Format gepr ft im Fehlerfalle erfolgt eine Programmunterbrechung wegen Datenfehlers Ein Dezimal berlauf tritt auf wenn die Summe mehr signifikante Dezimalstellen auf weist als in das Feld des ersten Operanden passen In diesem Fall wird der Befehl nor mal beendet es werden jedoch nur die 2L1 1 niedrigstwertigen Dezimalstellen der Summe gespeichert und die h chstwertigen Dezimalstellen gehen verloren Die Anzeige wird auf 3 Overflow gesetzt Wenn das Bit f r Dezimal berlauf in der Programmaske auf 1 gesetzt ist BS2000 Standard erfolgt au erdem danach eine Programmunterbre chung wegen Dezimal berlaufs Eine echte Summe 0 hat stets ein positives Vorzeichen C jedoch kann eine 0 die durch Dezimal berlauf entstanden ist auch ein negatives Vorzeichen D haben U3119 J Z125 2 185 AP Dezimalbefehle Anzeige O Zero Summe 0 mit dem Vorzeichen C46 1 Minus Summe lt 0 mit dem Vorzeichen D46 2 Plus Summe gt 0 sie hat das Vorzeichen C46 3 Overflow Summe zu gro Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler Lese Schreibzugriff auf Operandl oder Lesezugriff auf Operand2 unm glich Inkorrektes Format eines Summanden Summe zu gro f r den ersten Operanden Datenfehler Dezimal berlauf Programmierhinweise Beide Operanden werden als Ganzzahlen verarbeitet Ein positives Vorzeichen des Resultats wird durch C ein negatives Vorze
195. nach rechts Sie endet wenn die durch R2 1 bestimmte Anzahl von Byte des Sendefelds in das Empfangsfeld bertragen ist Wenn dann noch nicht die durch R1 1 bestimmte L nge des Empfangsfelds erreicht ist wird das Empfangsfeld durch F llbytes aufgef llt deren Codierung dem h chstwerti gen Byte von R2 1 entnommen wird Die bertragung wird nur durchgef hrt wenn sich das Empfangsfeld entweder nicht mit dem Sendefeld berlappt oder nur so berlappt da das Empfangsfeld nicht rechts vom Sendefeld beginnt F r korrekte berlappung mu gelten A Empfangsfeld lt A Sendefeld oder A Empfangsfeld gt A Sendefeld Min L Empfangsfeld L Sendefeld Bei inkorrekter auch destruktiv genannter berlappung wird der Befehl nicht begon nen und die Anzeige auf 3 Overflow gesetzt Der Befehl MVCL ist hardwareseitig unterbrechbar Bei einer Unterbrechung wird die bis dahin erreichte bertragung in den Registerpaaren R1 und R2 festgehalten durch Abspeicherung der hochgez hlten Adressen und der heruntergez hlten L ngen Nach der Unterbrechung wird dann die bertragung an der unterbrochenen Stelle fortgesetzt Bei Befehlsende also nach vollst ndiger bertragung und ggf erfolgter Auff llung mit F llbytes werden in die Registerpaare R1 und R2 folgende Werte gespeichert die Adressen in R1 und R2 sind um die L ngenwerte in den Registern R1 1 bzw R2 1 erh ht die Register Ri 1 und R2 1 enthalten in ihren niedrigstwertigen 3 B
196. nd FIELD 1 U3119 J Z125 2 161 STM 162 Allgemeine Befehle Store Multiple Funktion Der Befehl STM speichert die Inhalte von bis zu 16 aufeinanderfolgenden Mehrzweckre gistern in aufeinanderfolgende Worte des Hauptspeichers Die Anzeige wird nicht ver ndert Assemblerformat R1 R3 D2 B2 D2 B2 Wortgrenze Maschinenformat 0 20 31 Beschreibung Der Inhalt aufeinanderfolgender Mehrzweckregister beginnend mit R1 und endend mit R3 wird in aufeinanderfolgende Worte des Hauptspeichers bertragen Das erste Wort ist mit D2 B2 adressiert Wenn R1 gt R3 ist wird ab dem Mehrzweckregister R1 bis zum Mehrzweckregister 15 und dann ab dem Mehrzweckregister 0 bis zum Register R3 gespeichert Wenn R1 R3 ist wird nur ein Mehrzweckregister R1 gespeichert Befehl Operandl Operand2 STM Inhalte der Register R1 bis R3 mit D2 B2 adressierte Wortfolge Wortanzahl R3 R1 1 wenn R3 gt R1 R3 R1 17 wenn R3 lt R1 Anzeige Nicht ver ndert U3119 J Z125 2 Allgemeine Befehle STM U3119 J Z125 2 Programmunterbrechungen Art Ursachen Adre umsetzungsfehler x 4a8 Schreibzugriff auf Operand2 unm glich Adre fehler x 5C D2 B2 keine Wortgrenze Beispiel STM 15 0 SAVE Der Inhalt der Mehrzweckregister 15 und 0 wird in die zwei aufeinanderfolgenden Worte SAVE und SAVE A gespeichert 163 SVC 164 Allgemeine Befehle Supervisor Call Funktion Der Befehl SVC bewirkt den Aufru
197. nden Adresse D1 B1 1 und dessen zweite Operanden Adresse D1 B1 ist Dadurch wird der rechte Teil des Byte 0 ber den ersten Operanden ausgebreitet Beispiel XC DFIELD 3 DFIELD DFIELD X 000000 DFIELD 3 C 123 DFIELD nachher X 010203 U3119 J Z125 2 115 MVO 116 Allgemeine Befehle Move with Offset Funktion Der Befehl MVO bertr gt ein Zeichenfeld des Hauptspeichers um ein Halbbyte nach links versetzt in ein anderes Zeichenfeld Die Anzeige wird gem dem Vergleichsergebnis gesetzt Assemblerformat Maschinenformat 0 8 12 16 36 47 20 32 Beschreibung Das mit D1 B1 adressierte Zeichenfeld im Hauptspeicher L nge L1 Byte ist das Emp fangsfeld das mit D2 B2 adressierte Zeichenfeld im Hauptspeicher L nge L2 Byte ist das Sendefeld Die bertragung erfolgt von rechts nach links Von jedem Byte des Sendefelds werden die rechten 4 Bit in die linken 4 Bit des gegen berliegenden Byte des Empfangsfelds bertragen und die linken 4 Bit in die rechten 4 Bit des davorliegenden Byte im Emp fangsfeld Die rechten 4 Bit des niedrigstwertigen Byte des Empfangsfelds bleiben unver ndert siehe nachfolgende Darstellung U3119 J Z125 2 Allgemeine Befehle MVO Byte 0 I L1 2 L1 1 t t t f k unver ndert Sendefeld Byte L2 L1 L2 L1 1 L2 2 L2 1 In dieser Darstellung ist L2 gt L1 unterstellt sonst ist das h chstwertige Byte des Emp fangsfelds das Byte L1 L2 1 un
198. ndert Assemblerformate SRL R1 D2 B2 oder auch SRL Rl lt anzahl gt Maschinenformat 0 8 12 16 20 31 Beschreibung Der Inhalt des Mehrzweckregisters R1 wird als 32 Bit lange Bin rzahl ohne Vorzeichen behandelt Die durch D2 B2 bestimmte Adresse wird nicht als Datenadresse verwendet stattdes sen bilden die rechten 6 Bit dieser Adresse die Anzahl der Bin rstellen um die Bin r zahl nach rechts verschoben wird Diese Anzahl liegt im Bereich zwischen 0 und 63 Die h herwertigen Bin rstellen von D2 B2 werden ignoriert Alle 32 Bin rstellen werden nach rechts verschoben Links freiwerdende Bitstellen wer den mit 0 gef llt Rechts ber die Bitstelle 31 von R1 hinausgeschobene Bin rstellen gehen verloren Die Bitstellen 12 bis 15 des Befehls werden ignoriert Anzeige Nicht ver ndert Programmunterbrechungen Keine U3119 J Z125 2 Allgemeine Befehle SRL U3119 J Z125 2 Programmierhinweise Wenn B2 0 ist bestimmt D2 allein die Verschiebeanzahl in diesem Fall darf die Angabe von B2 im Assemblerformat entfallen Wenn die Verschiebeanzahl 0 modulo 64 ist bleibt R1 und die Anzeige unver n dert Beispiele Die folgenden Beispielbefehle ergeben Register 0 vorher Beispielbefehl Register 0 nachher Anzeige Ops OTOL unver ndert 1 1011 unver ndert ROESER unver ndert Ost unver ndert Im Unterschied zum Befehl SRA wird bei SRL der Wert der Bitstelle 0 des Registers
199. ndet die Summe wird in die Bitstellen 1 bis 31 des Mehr zweckregisters R1 eingetragen und das Bit 0 auf 0 gesetzt Es erfolgt kein Speicherzugriff auf die resultierende Adresse Anzeige Nicht ver ndert Programmunterbrechungen Keine U3119 J Z125 2 89 LA 90 Allgemeine Befehle Programmierhinweise Der Befehl LA ist oftmals ein kritischer Befehl bei der Portierung von Programmen aus dem 24 Bit Adressierungsmodus in den 31 Bit Adressierungsmodus In lteren Programmen findet man n mlich nicht selten die h chstwertigen 8 Bit links von einer 24 Bit Adresse f r zus tzliche Informationen wie z B Anzeigen ausgenutzt und dann den Befehl LA zu dem Zweck eingesetzt die h chstwertigen 8 Bit auf 0 zu setzen Es empfiehlt sich vor der bertragung von Programmen aus einer 24 Bit Umgebung in eine 31 Bit Umgebung besonders alle die Adressen zu verfolgen die von LA Befehlen ausgehen Der Befehl LA kann dazu verwendet werden ein Mehrzweckregister um einen kon stanten Wert zu erh hen Dazu tr gt man diese Konstante als D2 Wert in den Befehl ein und setzt Ri B2 sowie X2 0 schreibt also z B LA 5 6 5 um das Mehrzweckre gister 5 um 6 zu erh hen Man beachte jedoch da das Resultat des Befehls LA keine Festpunktzahl sondern eine Adresse ist die im 24 Bit Adressierungsmodus eine andere L nge hat als im 31 Bit Adressierungsmodus Nur solange das Resultat kleiner als 16 MB ist ist dieser Unterschied unerheblich
200. ne Befehle BSM Branch and Set Mode Funktion Der Befehl BSM speichert den momentanen Adressierungsmodus setzt danach einen angegebenen Adressierungsmodus und verzweigt in diesem Modus an eine angege bene Adresse Die Anzeige wird nicht ver ndert Der Befehl BSM ist nur im Befehlsvorrat der Zentraleinheiten verf gbar die ber den 31 Bit Adressierungsmodus verf gen Assemblerformat Maschinenformat 0 8 12 15 Beschreibung Wenn das R1 Feld 0 ist wird der momentane Adressierungsmodus in die Bitstelle 0 des Mehrzweckregisters R1 gespeichert die Bitstellen 1 bis 31 bleiben unver ndert Wenn das R1 Feld 0 ist wird der momentane Adressierungsmodus nicht gespeichert Anschlie end wird wenn das R2 Feld 0 ist der Adressierungsmodus gesetzt der sich aus dem Bit 0 des Mehrzweckregisters R2 ergibt und es wird in diesem Modus an die in den Bitstellen 1 bis 31 von R2 enthaltene Adresse verzweigt Diese Adresse ist je nach Adressierungsmodus 24 Bit oder 31 Bit lang Wenn das R2 Feld 0 ist geschieht dies nicht sondern es wird im momentanen Adressierungsmodus nach dem Befehl BSM fortgefahren In beiden Registern R1 und R2 bedeutet ein Wert 0 an der Bitstelle 0 den 24 Bit Adres sierungsmodus und ein Wert 1 den 31 Bit Adressierungsmodus Die Sprungadresse wird ermittelt bevor das Mehrzweckregister R1 ver ndert wird Anzeige Nicht ver ndert U3119 J Z125 2 47 BSM Allgemeine Befehle Programmunterbrechungen
201. ner Befehlsbeendigung wegen Adre umsetzungsfehlers kann die bertragung bereits begonnen worden sein Wegen der Unterbrechbarkeit des Befehls MVCL durch parallel arbeitende Zentralein heiten sollte der Befehl MVCL der die bertragung ausl st nicht selbst bertragen werden Ebenso sollte ein Befehl EX der einen Befehl MVCL ausf hrt nicht mit bertragen werden Beispiel Die folgenden Befehle bertragen 15000 Byte aus dem Bereich SF in den Bereich DF und f llen die anschlie enden 5000 Byte des Bereichs DF mit dem Zeichen 4 5 A DF 20000 R4 R5 Operandl 10 11 A SF 15000 R10 R11 Operand2 11 B 1000 Einsetzen F llbyte in Byte 0 4 10 Nach MVCL ist die Anzeige auf 2 High gesetzt 20000 gt 15000 Die Register 4 bzw 10 enthalten die Adressen A DF 20000 bzw A SF 15000 die Register 5 und 11 ent halten in den rechten 3 Byte 00 00 00 und im linken Byte die Werte 00 bzw das Zei chen Voraussetzung f r dieses Ergebnis ist da der Bereich DF entweder vor SF oder nach SF 14999 beginnt oder A DF A SF ist andernfalls ist die Anzeige 3 Overflow ge setzt und es hat keine bertragung stattgefunden U3119 J Z125 2 Allgemeine Befehle MVI Move Immediate Funktion Der Befehl MVI bertr gt ein Byte Direktoperand in den Hauptspeicher Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen D n 12 TEER Maschinenformat 0 Beschreibung Der Di
202. ner Operandenadresse bestimmt ist Basisregister aus der Distanzadresse d h aus der 12 Bit langen Bin rzahl die direkt im D Feld einer Operandenadresse angegeben ist und Hauptspeicher Adressierung Grundlagen aus der Indexadresse d h aus der 32 Bit langen Bin rzahl in dem Mehrzweckregi ster das durch das X Feld einer Operandenadresse bestimmt ist Indexregister Eine solche Indexadresse ist allerdings nur bei den sog RX Befehlen vorhanden Die Summanden werden als Bin rzahlen ohne Vorzeichen behandelt ein etwaiger ber trag ber die h chstwertige Bin rstelle wird ignoriert Die Summe wird je nach Adressie rungsmodus auf die niedrigstwertigen 24 Bit oder 31 Bit gek rzt und die oberen acht Bit bzw das obere eine Bit werden auf 0 gesetzt Das Resultat ist dann die virtuelle Adresse des Operanden und zwar in den meisten F llen die Adresse seines ersten h chstwertigen Byte Wenn das B Feld oder das X Feld einer Operandenadresse oder beide gleich Null sind wird die entsprechende Komponente nicht in die Summierung einbezogen Es ist demzufolge nicht m glich das Mehrzweckregister 0 zur Basis oder Indexadressierung zu benutzen Wenn der AR Modus siehe 2 1 3 und Kapitel 6 eingeschaltet ist berechnet sich eine effektive Adresse wie bisher Basisadresse Distanzadresse Indexadresse jedoch unter Ber cksichtigung des Zugriffsregisters siehe 2 2 2 und Kapitel 6 Ausrichtung auf Halbwort Wort und Doppe
203. nis 0 1 Minus Ergebnis lt 0 2 Plus Ergebnis gt 0 3 Overflow Nicht verwendet Programmunterbrechungen Keine Programmierhinweise R1 darf R2 sein Der Befehl LTR leistet das gleiche wie der Befehl LR aber setzt zus tzlich die Anzei ge U3119 J Z125 2 101 102 Allgemeine Befehle Multiply Funktion Die Befehle MR und M multiplizieren zwei 32 Bit lange Festpunktzahlen vorzeichenge recht und erzeugen ein 64 Bit langes Produkt Die Anzeige wird nicht ver ndert Assemblerformate R1 R2 R1 geradzahlig R1 D2 X2 B2 R1 geradzahlig und D2 X2 B2 Wortgrenze Maschinenformate MR RR XLC R2 Beschreibung Das R1 Feld der Befehle MR und M bestimt ein Paar von Mehrzweckregistern beste hend aus den Registern R1 und R1 1 R1 mu geradzahlig sein andernfalls erfolgt eine Programmunterbrechung wegen Adre fehlers Der Multiplikand wird dem ungeradzahligen Mehrzweckregister Ri 1 entnommen der Inhalt des geradzahligen Registers R1 wird ignoriert Der Multiplikator ist beim Befehl MR im Mehrzweckregister R2 und beim Befehl M in dem mit D2 X2 B2 adressierten Hauptspeicherwort enthalten Das Produkt wird in die Register R1 und R1 1 gespei chert Der Multiplikand und Multiplikator werden als 32 Bit lange Festpunktzahlen mit Vorzei chen behandelt Das resultierende Produkt ist eine 64 Bit lange Festpunktzahl mit dem Vorzeichen an der Bitstelle 0 des Mehrzweckregisters R1 Das Vorzeichen des Produkts
204. nis arithmetisch nicht korrekt ist Das letzte Beispiel zeigt einen Fall ohne Verschiebung von der Verschiebezahl werden nur die niedrigstwertigen 6 Bit verwendet und diese ergeben bei der Zahl 64 den Wert 0 Zwar werden die Register nicht ver ndert aber die Anzeige wird gesetzt U3119 J Z125 2 141 SLDL 142 Allgemeine Befehle Shift Left Double Logical Funktion Der Befehl SLDL verschiebt eine 64 Bit lange Bin rzahl in einem Mehrzweckregister Paar um eine angegebene Anzahl von Bin rstellen logisch nach links Die Anzeige wird nicht ver ndert Assemblerformate SLDL R1 D2 B2 R1 geradzahlig oder auch SLDL Rl lt anzahl gt R1 geradzahlig Maschinenformat 0 8 12 16 20 31 Beschreibung Das R1 Feld des Befehls bestimmt ein Paar von Mehrzweckregistern bestehend aus den Registern Ri und R1 1 Ri mu geradzahlig sein andernfalls erfolgt eine Program munterbrechung wegen Adre fehlers Die Bitstellen 12 bis 15 des Befehls werden ignoriert Die durch D2 B2 bestimmte Adresse wird nicht als Datenadresse verwendet stattdes sen bestimmen die rechten 6 Bit dieser Adresse die Anzahl der Bin rstellen um die die Bin rzahl nach links verschoben wird Diese Anzahl liegt im Bereich zwischen 0 und 634o Die h herwertigen Bin rstellen von D2 B2 werden ignoriert Der Inhalt der beiden Register R1 und R1 1 wird als 64 Bit lange Bin rzahl ohne Vorzei chen behandelt Alle 64 Bin rstellen dieser Zahl werden vers
205. nt bis zu einem Endwert w chst bzw abnimmt In die sen F llen h lt man das Inkrement bzw Dekrement in einem geradzahligen Regi ster R3 und den Endwert im benachbarten ungeradzahligen Register R3 1 und ver wendet f r den Anfangswert und die Laufvariable ein beliebiges anderes Register R1 Wenn das Schleifenproblem so arrangiert werden kann da die Laufvariable von einem Anfangswert gt 0 ber ein konstantes Dekrement auf den Endwert 0 zul uft l t sich sogar noch ein Mehrzweckregister sparen man verwendet BXH und tr gt das Dekrement als negatives Inkrement in ein ungeradzahliges Mehrzweckregister ein der Befehl BXH verwendet dann zur Dekrementierung und zum Vergleich das selbe Register U3119 J Z125 2 Allgemeine Befehle BXH BXLE Beispiele Beispiel 1 Der in den Programmierhinweisen zuerst genannte Fall einer Schleife mit einer Laufva riablen die vom Anfangswert a ber die Werte ati a 2i zum Endwert z w chst l t sich mittels BXLE z B so programmieren beliebiges Register f r die Laufvariable 3 a 8 i geradzahliges Register f r das Inkrement 9 z Nachbar Register f r den Endwert BODY Schleifenrumpf 3 8 BODY J Dabei ist zu beachten da BODY auch noch f r den Laufvariablen Wert z selbst ausge f hrt wird Beispiel 2 Der in den Programmierhinweisen zweitgenannte Fall einer Schleife mit einer Laufvaria blen die von einem Anfangswert a zum Endwert 0 ber die W
206. ntbyte Adresse in die Bitstellen 1 bis 31 des Registers 1 eingetragen und die Bitstelle O wird auf 0 gesetzt Der Wert des ersten von Null verschiedenen Funktionsbyte wird in die Bitstellen 24 bis 31 des Mehrzweckregisters 2 eingetragen die Bitstellen 0 bis 23 bleiben unver ndert Anzeige 0 Zero Alle Funktionsbyte sind 00 6 1 Minus Ein Funktionsbyte ungleich 00 wurde entdeckt bevor das letzte Argu mentbyte des Zielfelds verarbeitet wurde 2 Plus Das Argumentbyte das zum letzten Byte des Zielfelds geh rt war 00 3 Nicht verwendet Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Lesezugriff auf Operandl oder Operand2 unm glich Programmierhinweise Die Umsetzungstabelle ist so lang wie der Wert des gr ten verarbeiteten Argument byte plus 1 Im Gegensatz zum Befehl TR bleibt beim Befehl TRT die Zieltabelle unver ndert Der Befehl TRT benutzt die Mehrzweckregister 1 und 2 obwohl diese nicht im Be fehl angegeben werden Weil die Mehrzweckregister 1 und 2 nicht in jedem Falle ge ndert werden und auch dann wenn sie ge ndert werden nicht vollst ndig ersetzt werden empfiehlt es sich diese Register 1 und 2 vor TRT explizit zu besetzen z B auf die Adresse des ersten Byte nach dem zu bearbeitenden Speicherbereich Der Befehl TRT kann dazu benutzt werden um ein Zielfeld auf Zeichen hin zu ber pr fen die eine besondere Bedeutung haben z B unzul
207. nterbrechbar Assemblerformat Maschinenformat ke vos 77707 e I 9 8 D2 0 16 20 31 Beschreibung Das h chstwertige Bit des durch D2 B2 adressierten Hauptspeicher Byte wird getestet Wenn es 0 ist wird die Anzeige auf O Zero gesetzt andernfalls auf 1 Not Zero Anschlie end werden alle Bit des Byte auf 1 gesetzt also das Byte mit FF berschrie ben Die Bitstellen 8 bis 15 des Befehls werden ignoriert Die Besonderheit des Befehls TS besteht darin da im Zeitraum zwischen dem Test des h chstwertigen Bit des adressierten Byte und dem Abschlu des berschreibens mit FF keine andere Zentraleinheit und kein Kanal auf das Byte Schreib oder Lese zugriff hat Zu diesem Zweck findet vor und nach dem Befehl in der Hardware eine sog Serialisierung statt bei der alle anstehenden Speicherzugriffe abgearbeitet werden Die ser Mechanismus pr destiniert den Befehl TS f r Synchronisationsprobleme in Multipro zessor Anwendungen Anzeige O Zero H chstwertiges Bit von D2 B2 war 0 1 Not Zero H chstwertiges Bit von D2 B2 war 1 2 Nicht verwendet 3 Nicht verwendet U3119 J Z125 2 173 TS 174 Allgemeine Befehle Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Lese Schreibzugriff auf Operand2 unm glich Programmierhinweise Der Befehl TS ist weniger m chtig als die Befehle CS und CDS und nur aus Kompatibi l tsgr nden im Befehlsvorrat enthalten Deswegen wird f
208. ntraleinheit versucht die nicht 31 Bit f hig ist falsche Gleitpunktregisterangabe oder D2 X2 B2 keine Doppel Wortgrenze Quotient Charakteristik gt 127 Divisor Mantisse 0 Quotient Charakteristik lt 0 Adre umsetzungsfehler Falscher Operations Code Adre fehler Exponenten berlauf Divisionsfehler Exponenten Unterlauf Programmierhinweise Bei DER und DE werden die rechten 32 Bit des Gleitpunktregisters R1 f r die Mantis sen Division ignoriert und verbleiben unver ndert ebenso bei DER die rechten 32 Bit des Gleitpunktregisters R2 Durch das BS2000 wird das Bit f r Exponenten Unterlauf in der Programmaske mit 1 vorbesetzt so da unter den oben beschriebenen Bedingungen standardm ig eine Programmunterbrechung erfolgt Mit dem Befehl SPM kann das Anwenderprogramm jedoch die Vorbesetzung ndern R2 darf R1 sein Beispiel Name Operanden 0D DIVIDEND x 00100000 6 04x 16 148x167 116771 16048 x 80000000 DIVISOR x 80020000 16764x 21672 1677 grlx g 1x 16048 x 10000000 6 DIVIDEND 6 DIVISOR Ergebnis im Gleitpunktregister 6 x C180000000000000 16 1xgx16 1 8 Man beachte da durch die Normalisierung des Divisors eigentlich Exponenten Unter lauf entsteht da dieser jedoch nur beim Zwischenergebnis nicht beim Endergebnis auf tritt erfolgt keine Programmunterbrechung U3119 J Z125 2 Gleitpunktbefehle HDR HER Halve Funktio
209. och mehr Das R cksetzen eines Byte mit MVI gilt als sichere Operation Das R cksetzen eines Wortes oder Doppelwortes mit den Befehlen MVC ST STM STD gilt erst ab der Zentraleinheit 7 590 als sichere Operation Bei abw rtskompatiblen Zentraleinheiten lt 7 580 mu das R cksetzen von Sperren oder das L schen von nicht durch eine Sperre gesch tzten gemeinsam benutzten Speicherbereichen mit mehr als 1 Byte L nge d h Wort oder Doppelwortl nge mit den Befehlen CS oder CDS ausgef hrt werden Das Abfragen eines Byte mit CLI gilt als sichere Operation Das Abfragen eines Wortes oder Doppelwortes mit den Befehlen C CL CLC IC L LM LD MVC gilt erst ab der Zentraleinheit 7 590 als sichere Operation Bei abw rts kompatiblen Zentraleinheiten lt 7 580 mu das Abfragen von Sperren oder von nicht durch eine Sperre gesch tzten gemeinsam benutzten Speicherbereichen mit mehr als 1 Byte L nge d h Wort oder Doppelwortl nge wiederholt werden um sicherzustellen da sie keinen verf lschten Wert gelesen haben U3119 J Z125 2 289 Gemeinsam benutzte Daten in Multiprozessor Anlagen 7 6 1 7 6 2 290 Setzen von Sperren Folgende Befehle eignen sich zum Setzen von Sperren TS 1 Byte allerdings nur 2 Werte X FF und X FF daher nur f r bin re Sperren geeignet CS 1 Wort CDS 1 Doppelwort Bei diesen Befehlen ist gew hrleistet da w hrend des Update Vorgangs ein simultaner
210. olge LR U3119 J Z125 2 67 CS CDS 68 Allgemeine Befehle Compare and Swap Funktion Die Befehle CS und CDS speichern den Inhalt eines Mehrzweckregisters in einen Haupt speicherbereich sofern der Inhalt dieses Hauptspeicherbereichs gleich ist dem Inhalt eines anderen Mehrzweckregisters Die Befehle wahren die Integrit t ihrer Daten w h rend der Befehlsausf hrung Die Anzeige wird gesetzt Assemblerformate QS R1 R3 D2 B2 D2 B2 Wortgrenze CDS R1 R3 D2 B2 Rl R3 geradzahlig und x D2 B2 Doppelwortgrenze Maschinenformate cs RS X BA B2 D2 Kurze Operanden CDS RS X BB D2 Lange Operanden 8 12 16 20 3 an A w fi Hr Beschreibung Der erste Operand R1 wird mit dem zweiten Operanden D2 B2 logisch verglichen Bei Gleichheit ersetzt der dritte Operand R3 den zweiten Operanden und die Anzeige wird auf O Equal gesetzt bei Ungleichheit ersetzt der zweite Operand den ersten Ope randen und die Anzeige wird auf 1 Not Equal gesetzt Der zweite Operand bleibt bis zum Abschlu des Befehls gegen jeden anderen Schreibzugriff gesperrt Bei CS sind alle drei Operanden 32 Bit lang bei CDS sind sie 64 Bit lang Befehl Operandl Operand2 Operand3 cs Register R1 Wort bei D2 B2 Register R3 CDS Registerpaar R1 R1 1 Doppelwort bei D2 B2 Registerpaar R3 R3 1 U3119 J Z125 2 Allgemeine Befe hle CS CDS Anzeige 0 Equal Operand2 war gleich Operand1 Operand2 ist durch
211. on Dezimalstellen nach links oder rechts im Falle von Rechts Verschiebung wird die Dezi malzahl anschlie end gem einer angegebenen Rundungzsziffer gerundet Die Anzeige wird gem dem Wert des Resultats gesetzt Assemblerformate SRP D1 L1 B1 D2 B2 I3 0 I3s 9 oder auch SRP D1 L1 B1l 64 r rz 1 Sr 8 732 U x 22 SRP DI1 L1 Bl 1l rz 1 31 2 0 lt 72 amp Darin bedeutet r die Anzahl nach rechts zu verschiebender Dezimalstellen rz die Rundungsziffer lt 9 und l die Anzahl nach links zu verschiebender Dezimalstellen Auch bei Linksverschiebung mu im Assemblerformat der Direktoperand I3 angegeben sein obwohl er bei der Befehlsausf hrung nicht ber cksichtigt wird Maschinenformat 8 16 0 12 20 32 36 47 Beschreibung Der mit D1 L1 B1 adressierte erste Operand mu eine gepackte Dezimalzahl der L nge L1 Byte darstellen 1 lt L1 lt 16 Diese Dezimalzahl wird in die Richtung und um die Anzahl von Dezimalstellen verschoben die durch die Adresse D2 B2 bestimmt sind Der Direktoperand I3 mu eine Dezimalziffer d h lt 9 sein und dient im Falle von Rechts Verschiebung als Rundungsziffer f r die abschlie ende Rundung U3119 J Z125 2 Dezimalbefehle SRP Die durch D2 B2 bestimmte Adresse wird nicht als Datenadresse verwendet stattdes sen bilden die rechten 6 Bin rstellen dieser Adresse Bit 26 31 die Verschiebeinforma tion Wenn das h chstwertige Bit dieser Bin rzahl 0 ist d h w
212. ormat 0 8 12 16 20 31 Beschreibung Der Inhalt des Mehrzweckregisters R1 wird als 32 Bit lange Festpunktzahl mit dem Vor zeichen an der Bitstelle 0 behandelt Die durch D2 B2 bestimmte Adresse wird nicht als Datenadresse verwendet stattdes sen bilden die rechten 6 Bit dieser Adresse die Anzahl der Bin rstellen um die die Fest punktzahl nach rechts verschoben wird Diese Anzahl liegt im Bereich zwischen 0 und 634o Die h herwertigen Bin rstellen von D2 B2 werden ignoriert Bei der Rechtsverschiebung bleibt das Vorzeichen unver ndert nur die brigen 31 Bit stellen werden verschoben Links freiwerdende Bitstellen werden mit dem Wert des Vor zeichenbit gef llt rechts ber die Bitstelle 31 von R1 hinausgeschobene Bin rstellen gehen verloren Die Bitstellen 12 bis 15 des Befehls werden ignoriert Anzeige O Zero Verschobene Festpunktzahl 0 1 Minus Verschobene Festpunktzahl lt 0 Bit O von R1 1 2 Plus Verschobene Festpunktzahl gt 0 Bit O von R1 0 3 Nicht verwendet U3119 J Z125 2 Allgemeine Befehle SRA Programmunterbrechungen Keine Programmierhinweise Wenn B2 0 ist bestimmt D2 allein die Verschiebeanzahl in diesem Fall darf die Angabe von B2 im Assemblerformat entfallen Wenn die Verschiebeanzahl 0 modulo 64 ist bleibt R1 unver ndert aber die An zeige wird gesetzt Die Rechtsverschiebung von negativen Festpunktzahlen f hrt zur Abw rtsrundung auf die n chstniedrige negati
213. orzeichen in das Gleitpunktregister R1 und setzen die Anzeige gem dem Wert in R1 Assemblerformate kurze Operanden LNER R1 R2 R1 R2 0 2 4 oder 6 lange Operanden LNDR R1 R2 R1 R2 0 2 4 oder 6 Maschinenformate LNER RR x 317 2 Kurze Operanden z el LNDR RR 2 Lange Operanden 0 8 12 15 Beschreibung Die kurze LNER bzw lange LNDR Gleitpunktzahl im Gleitpunktregister R2 wird mit negativem Vorzeichen in das Gleitpunktregister R1 bertragen Es findet keine Normali sierung statt Das Vorzeichen wird auch negativ gesetzt wenn die Mantisse des Eingangs Operanden 0 ist die Anzeige wird jedoch in diesem Fall auf O Zero gesetzt Anzeige O Zero Mantisse des Ergebnisses ist 0 1 Minus Ergebnis ist lt 0 2 Nicht verwendet 3 Nicht verwendet U3119 J Z125 2 Gleitpunktbefehle LNDR LNER Programmunterbrechungen Art Gewicht Ursachen Adre fehler xX756 falsche Gleitpunktregisterangabe Programmierhinweise R1 darf R2 sein Der Befehl LNER bertr gt nur die linken 32 Bit des Gleitpunktregisters R2 und l t die rechten 32 Bit des Gleitpunkregisters R1 unver ndert U3119 J Z125 2 241 LPDR LPER Gleitpunktbefehle 242 Load Positive Funktion Die Befehle LPER und LPDR laden die Gleitpunktzahl im Gleitpunktregister R2 mit positi vem Vorzeichen in das Gleitpunktregister R1 und setzen die Anzeige gem dem Wert in R1 Assemblerformate
214. paare und benutzt den Befehl S zur Subtraktion des h chstwertigen Wortpaars wenn nach der Subtraktion eines niedrigstwertigen Wortpaars die Anzeige auf 1 Minus gesetzt ist d h das Operand1 Wort kleiner als das Operand2 Wort war mu die Zahl 1 von der Differenz des n chsth heren Wortpaars subtrahiert werden siehe Beispiel2 U3119 J Z125 2 Allgemeine Befehle SL SLR Beispiel Beispiell 10 F 1 10 F 1 Register 10 0 x aber Anzeige 2 nicht 0 siehe Programmierhinweise Beispiel2 0 1 FPNOl Subtraktion von zwei 64 Bit LOWSUB 1 FPNO2 4 langen Festpunktzahlen HIGHSUB 0 H 1 FPNOl 4 war lt FPNO2 4 HIGHSUB 0 FPNO2 Das Beispiel2 zeigt die vorzeichengerechte Subtraktion von zwei 64 Bit langen Fest punktzahlen FPNO1 und FPNO2 Das niederwertige Wortpaar wird mittels SL und das h herwertige Wortpaar wird mittels S subtrahiert Im Falle von Unterlauf bei der Subtrak tion des niederwertigen Wortpaars mu von der Differenz des h herwertigen Wortpaars noch 1 subtrahiert werden Das Ergebnis steht im Beispielsfalle in den Mehrzweckregi stern 0 und 1 U3119 J Z125 2 135 SLA 136 Allgemeine Befehle Shift Left Single Funktion Der Befehl SLA verschiebt eine 32 Bit lange Festpunktzahl in einem Mehrzweckregister vorzeichengerecht um eine angegebene Anzahl von Bin rstellen nach links Die Anzeige wird gem dem Wert des Ergebnisses gesetzt Assemblerformate SLA R1 D2 B2 oder auch SLA Rl l
215. pare Compare Halfword Compare Logical Compare Logical Characters Compare Logical Long Compare Logical Immediate Compare Logical under Mask Compare and Swap Convert to Binary Convert to Decimal Divide Execute Insert Character Insert Characters under Mask Insert Da Mask Load RR Load Address Load Complement Load Halfword Load Multiple Load Negative Load Positive Load and Test Multiply Monitor Call j Multiply Halfword Move Characters Move Long Move Immediate Move Numerics Move with Offset Move Zones AND OR Pack Subtract Subtract Halfword Subtract Logical Shift Left Single Shift Left Double Shift Left Double Logical Shift Left Single Logical Set Program Mask Shift Right Single 114 116 119 121 124 127 129 131 133 136 139 142 144 146 148 U3119 J Z125 2 U3119 J Z125 2 Shift Right Double nr Shift Right Double Logical Shift Right ne ae Store j Store Clock Store Characters under Mask Store Multiple Supervisor Call Test under Mask Translate Translate and Test Test and Set Unpack Exclusive Or Dezimalbefehle berblick Add Decimal Compare Decimal Divide Decimal Edit Multiply Decimal Subtract Decimal Shift and Round Decimal Zero and Add Gleitpunktbefehle berblick Add Normalized Add Unnormalized Compare Divide Halve Load Complement Load ee Load Negative Load Positive Load Rounded Load and Test Multiply f Subtract Normalize
216. peichers oder der Folgeaktionenen eines Befehls Ihre konkrete Bedeutung und Wirkung ist bei den einzelnen Befehlen die Masken verwenden beschrieben U3119 J Z125 2 21 Befehlsaufbau Grundlagen 2 6 22 Befehlsaufbau Jeder Befehl besteht aus zwei Teilen 1 aus dem sog Operationscode der die Wirkung des Befehls bestimmt und 2 aus der Angabe seiner Operanden Alle Befehle m ssen im Hauptspeicher an Halbwortgrenzen ausgerichtet sein Je nach Befehlstyp sind Befehle entweder 2 4 oder 6 Byte lang Befehlstypen Es gibt die folgenden generellen Befehlstypen 1 Befehlstyp RR F r Befehle mit zwei Register Operanden oder einem Register Operanden und einer Maske RR 2 Befehlstyp RRE F r Befehle mit erweitertem Operationscode und zwei Register Operanden 0 16 24 28 31 Die Bitstellen 16 bis 23 werden bei Befehlen dieses Befehlstyps ignoriert 3 Befehlstyp RX F r Befehle mit einem Register Operanden oder einer Maske und einem index adres sierten Hauptspeicher Operanden RX U3119 J Z125 2 Grundlagen Befehlsaufbau 4 Befehlstyp RS F r Befehle mit zwei Register Operanden und einem Hauptspeicher Operanden oder einem Register Operanden und einem Hauptspeicher Operanden und einer Maske RS 5 Befehlstyp SI F r Befehle mit einem Hauptspeicher Operanden und einem Direktoperanden 0 8 16 20 31 6 Befehlstyp S F r Befehle mit erweitertem Operationscode und einem Hauptspeicher
217. r ist 32 Bit lang kann also 4 Byte oder ein Wort aufnehmen Die Zugriffsregister dienen dem Zugriff auf die Datenr ume data spaces Die 16 Zugriffsregister AR sind den 16 Mehrzweckregistern MZR eindeutig zugeord net Enth lt das B Feld Basisregister einer Operandenadresse den Wert 0 so wird weder das Mehrzweckregister 0 zur Adressberechnung der effektiven Operandenadresse heran gezogen noch das Zugriffsregister 0 zur Adressierung eines Datenraums U3119 J Z125 2 Grundlagen 2 2 3 U3119 J Z125 2 Register Gleitpunktregister Die Zentraleinheiten verf gen ber 4 Gleitpunktregister die ausschlie lich durch Gleit punktbefehle angesprochen und auch nur f r Gleitpunktzahlen verwendet werden k n nen Die Gleitpunktregister werden durch die Nummern 0 2 4 oder 6 in einem R Feld der Gleitpunktbefehle bestimmt Jedes Gleitpunktregister ist 64 Bit lang und kann eine kurze oder eine lange Gleitpunktzahl aufnehmen Kurze Gleitpunktzahlen werden in den linken 32 Bit eines Gleitpunktregisters gespeichert in allen Gleitpunktbefehlen mit kur zen Gleitpunktoperanden werden die rechten 32 Bit ignoriert bzw bleiben unver ndert F r erweiterte 128 Bit lange Gleitpunktzahlen werden zwei aufeinanderfolgende Gleit punktregister also ein Gleitpunktregister Paar verwendet und zwar entweder das Gleitpunktregister Paar aus den Gleitpunktregistern 0 und 2 oder das Gleitpunktregister Paar aus den Gleitpunktregistern 4 und 6 In solchen
218. r ist als die der ersten langen Gleitpunktzahl Wenn die Differenz der Charakteristiken der beiden langen Gleitpunktzahlen weniger als 14 betr gt und die erweiterte Gleitpunktzahl ist keine echte Null dann ist der untere Teil inkorrekt Bis zu drei f hrende Bit einer normalisierten Gleitpunktzahl k nnen 0 sein weil die Normalisierung sedezimalziffernweise also 4 bitweise erfolgt Durch das BS2000 werden alle vier Maskenbit der Programmaske mit 1 vorbesetzt Deshalb erfolgt unter den oben beschriebenen Bedingungen f r Exponenten Uhter lauf und f r Signifikanz normalerweise eine Programmunterbrechung Mit dem Befehl SPM Setzen Programmaske kann das Anwenderprogramm jedoch die Vorbeset zung ndern Bei der Normalisierung einer erweiterten Gleitpunktzahl wird die gesamte 28 stellige Mantisse verwendet Der untere Teil braucht f r sich nicht normalisiert zu sein obwohl es die erweiterte Gleitpunktzahl ist 219 berblick 220 Gleitpunktbefehle Zur Konvertierung einer 32 Bit langen Festpunktzahl in eine lange Gleitpunktzahl und umgekehrt einer langen Gleitpunktzahl in eine 32 Bit lange Festpunktzahl sind fol gende Befehlsfolgen m glich FPTOFL EQU Festpunktzahl aus MZ Reg 0 ST 0 TMPDWORD 4 XI TMPDWORD 4 X 80 LD 0 TMPDWORD LE 0 TWOEX31 SD 0 TWOEX31 Gleitpunktzahl in GP Reg 0 FLTOFP EQU u Gleitpunktzahl aus GP Reg 0 AW 0 TWOEX31 BM TOOSMALL Fehler lt 231 CE 0 TWOEX31 BNE TOOBIG Feh
219. ragen Festpunkt berlauf entsteht wenn die kleinste negative Zahl 23 bertragen werden soll das Ergebnis in R1 ist dann wieder die kleinste negative Zahl und die Anzeige ist auf 3 Overflow gesetzt au erdem erfolgt eine Programmunterbrechung wenn das Bit f r Festpunkt berlauf in der Programmaske 1 ist BS2000 Standard Anzeige O Zero Ergebnis 0 1 Nicht verwendet 2 Plus Ergebnis gt 0 3 Overflow Festpunkt berlauf U3119 J Z125 2 99 LPR 100 Allgemeine Befehle Programmunterbrechungen Festpunkt berlauf x 78 R2 Inhalt 2 1 Art Ursachen Programmierhinweise R1 darf R2 sein Beispiele Name Operanden Bemerkungen Beispiell 0 F 1 Register 0 vorher 1 0 0 Register 0 nachher 1 Anzeige 2 Plus Beispiel2 5 F 2147483648 Register 5 231 6 5 Register 6 231 Anzeige 3 Overflow und X ggf Programmunterbrechung U3119 J Z125 2 Allgemeine Befehle LTR Load and Test Funktion Der Befehl LTR bertr gt eine 32 Bit lange Festpunktzahl aus einem Mehrzweckregister in ein Mehrzweckregister Die Anzeige wird gem dem Wert der bertragenen Festpunktzahl gesetzt Assemblerformat Name Operanden Bemerkungen LTR R1 R2 Maschinenformat Beschreibung Die Festpunktzahl im Mehrzweckregister R2 wird unver ndert in das Mehrzweckregister R1 bertragen und dabei auf ihren Wert getestet Festpunkt U berlauf kann nicht auftreten Anzeige O Zero Ergeb
220. raum virtuelle Adressen Adresse 0 bis zu 2 Giga Byte Sie k nnen nur Daten oder als Daten abgelegten Programmcode enthalten Programmcode kann in einem Datenraum nicht ausgef hrt werden Ihre eindeutige Ansprache ist ber die SPID space identification oder ber einen bzw mehrere ALETs access list entry token m glich Die SPID wird beim Anlegen eines Datenraumes vergeben und ist systemweit eindeutig und bekannt ALETs verweisen nur innerhalb des Programms eindeutig auf einen Datenraum F r die Adressierung mit ALETs wurden die Zugriffsregister siehe auch 2 2 2 als weiterer Registersatz parallel zu den Mehrzweckregistern eingef hrt In den Zugriffsregistern sind die ALETs enthalten Wenn der AR Modus access register mode eingeschaltet ist werden bei der Adre umsetzung in einem Maschinenbefehl die Zugriffsregister mit ausgewertet und so Daten in einem Datenraum adressiert Nur Programme die auf ESA Anlagen und in einer BS2000 Version gt V11 laufen und die ESA Befehle einsetzen k nnen Daten in einem solchen Datenraum ablegen Siehe Handbuch Makroaufrufe an den Ablaufteil 3 Auf ESA Anlagen k nnen Sie zum einen mit 24 Bit Adressen oder 31 Bit Adressen arbei ten und zum anderen mit Datenr umen oder nur im Programmraum Deshalb gibt es auf ESA Anlagen einen weiteren Adressierungsmodus den AR Modus Unabh ngig vom AR Modus k nnen Sie die XS F higkeit von ESA Anlagen nutzen Der Programmraum und jeder Datenraum der angelegt
221. rektoperand 12 ersetzt das mit D1 B1 adressierte Hauptspeicherbyte Anzeige Nicht ver ndert Programmunterbrechungen Ursachen Schreibzugriff auf Operandl unm glich Beispiel Siehe das Beispiel unter MVC U3119 J Z125 2 113 MVN 114 Allgemeine Befehle Move Numerics Funktion Der Befehl MVN bertr gt die rechten Halbbyte eines Hauptspeicherbereichs in die rech ten Halbbyte eines anderen Hauptspeicherbereichs Die Anzeige wird nicht ver ndert Assemblerformat Dan L B1 D2 B2 1sL lt 256 Maschinenformat 0 8 20 32 36 47 Beschreibung Die rechten Halbbyte des mit D2 B2 adressierten Zeichenfelds der L nge L Byte d h die Ziffernteile werden von links nach rechts in die rechten Halbbyte des mit D1 B1 adressierten Zeichenfelds bertragen die linken Halbbyte des ersten Operanden bleiben unver ndert Anzeige Nicht ver ndert Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Lese Schreibzugriff auf Operandl oder Lesezugriff auf Operand2 unm glich U3119 J Z125 2 Allgemeine Befehle MVN Programmierhinweise Die Operanden d rfen sich berlappen Man kann sich die berlappungsm glichkeit des MVN zunutze machen um die Zif fernteile eines Feld zu l schen d h mit einem konstanten Wert zu f llen Dazu spei chert man diesen Wert in das Byte 0 des ersten Operanden z B mit Ol und f hrt danach einen MVN aus dessen erste Opera
222. rfolgt au erdem eine Programmun terbrechung wenn in der Programmaske das Bit f r Festpunkt berlauf 1 gesetzt ist BS2000 Standard Links oder Rechts Verschiebung von Bin rzahlen Die vorzeichengerechte Verschiebung einer Bin rzahl behandelt die Vorzeichenstelle gesondert die logische Verschiebung dagegen nicht Bei vorzeichengerechter Verschiebung bleibt die Vorzeichenstelle stets unver ndert und nur die Bin rstellen ab Bitstelle 1 werden verschoben bei Verschiebung nach rechts werden links freiwerdende Bin rstellen mit dem Bitwert der Vorzeichenstelle besetzt bei Verschiebung nach links werden rechts freiwerdende Bin rstellen mit 0 besetzt Wenn bei einer Linksverschiebung signifikante d h von der Vorzeichenstelle verschiedene Bin rstellen links ber die Bitstelle 1 hinaus geschoben werden tritt Festpunkt berlauf ein die Anzeige wird dann auf 3 Overflow gesetzt und es erfolgt au erdem eine Pro grammunterbrechung wenn das Bit f r Festpunkt berlauf in der Programmmaske 1 gesetzt ist BS2000 Standard Bei logischer Links oder Rechtsverschiebung einer Bin rzahl werden alle Bin rstellen auch die Vorzeichenstelle verschoben Wenn nach rechts verschoben wird werden links frei werdende Bin rstellen mit 0 aufgef llt wenn nach links verschoben wird wer den rechts freiwerdende Bin rstellen mit O aufgef llt Die Anzeige wird bei logischer Ver schiebung nicht ver ndert U3119 J Z125 2 Grundlagen 2 5 3
223. rlauf Programmierhinweise Das Sendefeld wird nur ge ndert wenn es sich mit dem Empfangsfeld berlappt Die bertragung geschieht von rechts nach links Die beiden Operanden d rfen sich berlappen Ein korrektes Ergebnis ist aber nur dann zu erwarten wenn das niedrigstwertige Byte des Sendefelds nicht rechts vom niedrigstwertigen Byte des Empfangsfelds liegt wenn also D1 B1 L1 1 lt D2 B2 L2 1 ist Das Vorzeichen des Empfangsfelds wird auch dann C bzw D gesetzt wenn es im Sendefeld anders codiert ist Beispiele FIELD vorher Beispiel Befehl FIELD nachher Anzeige ohne Belang ohne Belang ohne Belang Man beachte da der Dezimal berlauf im dritten Beispiel nicht deshalb auftritt weil der zweite Operand l nger ist als der erste Operand sondern weil sein Wert 10 nicht in den ersten Operanden pa t Bei Dezimal berlauf kann es wie hier geschehen da eine resultierende Null ein negatives Vorzeichen bekommt U3119 J Z125 2 211 Gleitpunktbefehle berblick 5 Gleitpunktbefehle berblick Die Gleitpunktbefehle dienen der Bearbeitung von Zahlen mit gro em Wertebereich Es gibt Gleitpunktbefehle zum Laden Speichern Addieren Subtrahieren Multiplizieren Dividieren Vergleich sowie zur Vorzeichenbehandlung Die Befehle verarbeiten drei For mate von Gleitpunktzahlen das kurze das lange und das erweiterte Format Die meisten Gleitpunktbefehle verarbeiten zwei Glei
224. rm von Ausz gen aus anderen Handb chern konzentrierte Infor mationen zum Betrieb des BS2000 Befehle und Anweisungen des ASSEMBH BS2000 Makros und Kommandos Anweisungen zu AID DAMP ARCHIVE SM2 PA SDF I PASSWORD DPAGE TPCOMP2 SPCCNTRL PAMCONV MSGEDIT MSGLIB FDEXIM PRSERVE SPOOLSERVE RSOSERVE Auftragsschalter Dateikettungsnamen und Code Tabellen des BS2000 Einsatz BS2000 Dialogbetrieb und Stapelbetrieb Bestellen von Handb chern Die aufgef hrten Handb cher finden Sie mit ihren Bestellnummern im Druckschrif tenverzeichnis der Siemens Nixdorf Informationssysteme AG Neu erschienene Titel fin den Sie in den Druckschriften Neuerscheinungen Beide Ver ffentlichungen erhalten Sie regelm ig wenn Sie in den entsprechenden Ver teiler aufgenommen sind Wenden Sie sich bitte hierf r an Ihre zust ndige Gesch ftsstel le Dort k nnen Sie auch die Handb cher bestellen U3119 J Z125 2 Stichw rter Stichw rter BASSM 41 BSM 48 24 Bit Adressierungsmodus 6 30ff 47 48 61 86ff 110 111 171 198 266 31 Bit Adressierungsmodus 6 30ff 47 48 61 86ff 110 111 171 198 219 230 266 A A 27 28 32 Absolute Adressen 5 access register mode 265 267 AD 224 Addition von Bin rzahlen 19 Addition von Dezimalzahlen 185 address space control bit 265 address space control bits 267 ADR 221 Adre berechnung 7 Adre fehler 14 Adre raum 5 6 Adre umsetzung im AR Modus 26
225. rn mit dem nachfolgenden Befehl fortgefahren ebenso wird nicht verzweigt wenn beim Befehl BCTR das R2 Feld 0 ist Die Sprungadresse wird ermittelt bevor das Mehrzweckregister R1 ver ndert wird Anzeige Nicht ver ndert U3119 J Z125 2 45 BCT BCTR Allgemeine Befehle Programmunterbrechungen Keine beim Befehl selbst Wenn allerdings tats chlich verzweigt wird und die Zieladresse keine Halbwortadresse ist oder auf sie nicht zugegriffen werden kann erfolgt eine entsprechende Programmun terbrechung mit dem Gewicht 5C bzw 48 an der Zieladresse Programmierhinweise Der Inhalt des Mehrzweckregisters R1 kann gleicherma en als Zahl mit oder ohne Vorzeichen aufgefa t werden weil die Subtraktion von 1 in beiden F llen das glei che Resultat liefert Man beachte folgende Grenzf lle Die Subtraktion von 1 macht aus einem Register R1 Inhalt von 231 den Inhalt 231 1 und aus einem R1 Inhalt von 0 den Inhalt 1 in beiden F llen wird demzufolge verzweigt Nicht verzweigt wird nur wenn das Mehr zweckregister R1 vor dem Befehl BCTR bzw BCT den Wert 1 enth lt oder wenn beim Befehl BCTR das R2 Feld 0 ist Man beachte folgenden Unterschied zwischen BCTR und BCT bei BCTR wird die Sprungadresse durch den Inhalt bei BCT jedoch durch die Adresse des zweiten Operanden bestimmt Beispiel 5 H 100 AGAIN Y 5 AGAIN Im Beispiel wird AGAIN genau 100 mal durchlaufen 46 U3119 J Z125 2 Allgemei
226. rogramms herrscht Beispiel Zum Uhnterprogrammsprung aus einem Programmteil A der im 24 Bit Adressierungsmo dus abl uft in einen Programmteil B der im 31 Bit Adressierungsmodus abl uft kann der Befehl BASSM so eingesetzt werden A gt B A 24 B 31 15 V B 15 AM31 14 15 AL 0 14 OF AM31 xX 80000000 U3119 J Z125 2 41 BC BCR 42 Allgemeine Befehle Branch on Condition Funktion Die Befehle BCR und BC bewirken in Abh ngigkeit vom momentanen Wert der Anzeige eine Verzweigung an eine angegebene Adresse Die Anzeige wird nicht ver ndert Assemblerformate BCR M1 R2 B 0000 s MI s B 1111 BC M1 D2 xX2 B2 B 0000 lt M1 lt B 1111 Maschinenformate D2 0 8 12 16 20 31 Beschreibung Die Maske M1 ist ein 4 Bit langes Feld Dessen vier Bitstellen entsprechen von links nach rechts den vier m glichen Werten der Anzeige wie folgt Wert Bitstelle Wert der Anzeige der Maske M1 der Maske M1 Wenn zum Zeitpunkt der Befehlsausf hrung die Anzeige den Wert i hat und die Bitstelle i der Maske M1 1 ist verzweigt der Befehl BCR an die im Mehrzweckregister R2 ent haltene Adresse und der Befehl BC an die Adresse D2 X2 B2 Diese Adresse ist je nach Adressierungsmodus 24 Bit oder 31 Bit lang Wenn die Bitstelle i der Maske M1 0 ist wird nicht verzweigt sondern mit dem nachfolgenden Befehl fortgefahren ebenso wird nicht verzweigt wenn beim Befehl BCR das R2 Feld 0 ist U3119 J
227. rogrammunterbrechung wenn in der Programmaske das Bit f r Festpunkt berlauf 1 ist BS2000 Standard Anzeige 0 Zero Summe 0 1 Minus Summe lt 0 2 Plus Summe gt 0 3 Overflow Festpunkt berlauf Programmunterbrechungen Art Ursachen Adre umsetzungsfehler Adre fehler Festpunkt berlauf A Lesezugriff auf Operand2 unm glich A D2 X2 B2 keine Wortgrenze Summe gt 27 1 oder lt 2 Programmierhinweise Festpunkt berlauf entsteht dann wenn ein Bin rstellen berlauf in die Vorzeichenstelle ungleich ist dem Bin rstellen berlauf aus der Vorzeichenstelle Im Register R1 hat dann das Resultat ein falsches Vorzeichen Beispiele Name Operanden Beispiell 15 F 2147483647 Reg 15 X 80000001 221 1 15 F 1 Reg 15 X 80000000 231 Anzeige 1 Minus Beispiel2 15 0 F 2147483647 Reg 15 X 7FFFFFFF 231 1 x 0 1 Reg 0 1 15 0 Reg 15 X 80000000 231 Anzeige 3 Overflow und FE ggf Programmunterbrechung wegen Festpunkt U berlaufs Die Anzeige 3 Overflow in Beispiel2 weist darauf hin da das Resultat arithmetisch nicht korrekt ist U3119 J Z125 2 Allgemeine Befehle AH Add Halfword Funktion Der Befehl AH addiert eine 16 Bit lange Festpunktzahl zu einer 32 Bit langen Festpunkt zahl vorzeichengerecht Die Anzeige wird gem dem Wert der Summe gesetzt Assemblerformat Name Operanden Bemerkungen R1 D2 X2 B2 D2 X2 B2 Halbwortgrenze
228. rogrammunterbrechungen Art Gewicht Ursachen Festpunkt berlauf x 78 R2 Inhalt 231 U3119 J Z125 2 91 LCR Allgemeine Befehle Programmierhinweise R1 darf R2 sein Wenn der Inhalt von R2 0 ist wird auch der Inhalt von R1 und die Anzeige 0 gesetzt Beispiele Name Operanden Beispiell 0 F 1 Register 0 1 0 0 jetzt 1 Anzeige 2 0 0 jetzt 1 Anzeige 1 Beispiel2 5 F 2147483648 Register 5 231 6 5 Register 6 231 92 U3119 J Z125 2 Allgemeine Befehle LH Load Halfword Funktion Der Befehl LH bertr gt ein Halbwort aus dem Hauptspeicher in die Byte 2 und 3 eines Mehrzweckregisters und f llt die Byte 0 und 1 mit dem Vorzeichenbit des Halbworts auf Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen R1 D2 X2 B2 D2 X2 B2 Halbwortgrenze Maschinenformat 0 Beschreibung Das mit D2 X2 B2 adressierte Halbwort wird in die Bitstellen 16 bis 31 des Mehrzweck registers R1 bertragen Die Bitstellen 0 bis 15 werden auf den Wert des h chstwerti gen Bit des Halbworts gesetzt Anzeige Nicht ver ndert Programmunterbrechungen Art Ursachen Lesezugriff auf Operand2 unm glich D2 X2 B2 keine Halbwortgrenze Adre umsetzungsfehler Adre fehler U3119 J Z125 2 93 LH 94 Beispiel Name LH Operanden 0 H 1 0 B 1100 X FFFF Allgemeine Befehle liefert Anzeige 0 Equal U3119 J Z12
229. rt Gewicht Ursachen Adre umsetzungsfehler x 4a8 Lese Schreibzugriff auf Operandl oder Lesezugriff auf Operand2 unm glich Datenfehler XEO Ein linkes Halbbyte im Sendefeld enth lt keine Dezimalziffer Zus tzliche Markierung bei EDMK Der Befehl EDMK ist bez glich des oben beschriebenen Ablaufs und seines Ergebnis ses sowie bez glich der resultierenden Anzeige identisch zum Befehl ED EDMK spei chert jedoch zus tzlich die Adresse der h chstwertigen Dezimalziffer 0 im Empfangs feld ins Mehrzweckregister 1 wenn sich bei deren Speicherung der Signifikanz Indikator vorher in der Stellung ein befand Im Falle der Aufbereitung mehrerer Dezimalzahlen mit einem Befehl EDMK gilt dies f r die letzte Dezimalzahl bei der die Signifikanz auf diese Weise eingeschaltet wurde Wenn die Signifikanz berhaupt nicht oder durch den Signifikanzstarter eingeschaltet wurde wird das Mehrzweckregister 1 nicht ver ndert Im 24 Bit Adressierungsmodus wird die Adresse in die Bitstellen 8 bis 31 im 31 Bit Adressierungsmodus wird die Adresse in die Bitstellen 1 bis 31 des Mehrzweckregisters 1 eingetragen Die Bitstellen 0 bis 7 bzw die Bitstelle 0 bleiben unver ndert Programmierhinweise Die Befehle ED und EDMK sind vorgesehen f r solche F lle bei denen aufbereitete Dezimalzahlen zus tzliche Zeichen wie z B Tausenderpunkte Dezimalkommas oder W hrungszeichen enthalten sollen oder bei denen f hrende Nullen durch ein F llzei chen z
230. rt der ihm gegen berliegenden Sendefeldziffer in das Emp fangsfeld eingesetzt Die Details sind in der Tabelle im Abschnitt Zusammenfassung dar gestellt Das F llzeichen wird zu Beginn der Befehlsausf hrung zwischengespeichert und steht vom Zwischenspeicher aus w hrend der gesamten Befehlsausf hrung zur Verf gung auch wenn es selbst im Empfangsfeld ersetzt wird Erst nach der Zwischenspeicherung des F llzeichens beginnt die Interpretation der Maskenzeichen beginnend beim F llzei chen selbst Das F llzeichen wird nur dann selbst ersetzt wenn es ein Ziffernselektor oder Signifi kanzstarter ist und wenn ihm eine Dezimalziffer 0 gegen berliegt Sendefeldziffern Bei jedem Auftreten eines Ziffernselektors oder Signifikanzstarters in der Maske wird die n chste Dezimalziffer des Sendefeldes gelesen und der Signifikanz Indikator gepr ft Abh ngig davon wird die Dezimalziffer entweder in das rechte Halbbyte des Empfangs feldes gespeichert und in das linke Halbbyte die Zone F eingetragen oder es wird die Dezimalziffer bergangen und in das Empfangsfeld das F llzeichen gespeichert Das Sendefeld wird halbbyteweise von links nach rechts verarbeitet Alle linken Halb byte m ssen Dezimalziffern also Sedezimalziffern lt 9 enthalten andernfalls erfolgt eine Programmunterbrechung wegen Datenfehlers Jedesmal wenn ein linkes Halbbyte gelesen wird wird auch gleich das rechte Halbbyte daraufhin gepr ft ob es ein Vorzei chen d h
231. rts eines Anwenderprogramms alle 4 Bit mit dem Wert 1 vor so da standardm ig die vier Programmunterbrechungen erfol gen Allerdings kann das Anwenderprogramm mit dem Befehl SPM die Vorbesetzung ndern und durch Setzen einzelner oder aller vier Bitwerte auf 0 die zugeh rige Pro grammunterbrechung unterbinden Die Bit der Programmaske haben folgende Bedeutung Bit der Programmaske Bedeutung 0 Festpunkt berlauf 1 Dezimal berlauf 2 Exponenten Unterlauf 3 Signifikanz Mantisse 0 Hinweis Der BS2000 Makro STXIT mit dem STXIT Prozesse zur Behandlung von Programmun terbrechungen definiert werden k nnen ist zusammen mit seinen Parametern in dem Handbuch BS2000 Makroaufrufe an den Ablaufteil 3 dargestellt U3119 J Z125 2 15 Datentypen 2 5 2 5 1 16 Grundlagen Datentypen Die Assemblerbefehle verwenden folgende Datentypen Zeichen Zeichenfeld Bin rzahl Bitfeld Dezimalzahl und Gleitpunktzahl Von diesen sind die Datentypen Dezimalzahl und Gleitpunktzahl am Anfang der Kapitel 4 und 5 beschrieben in denen die sie ver wendenden Dezimalbefehle bzw Gleitpunktbefehle erl utert sind die anderen Datenty pen werden nachfolgend dargestellt Dem Sprachgebrauch folgend wird der Datentyp selbst als Bezeichnung verwendet wenn eigentlich eine Instanz des Datentyps gemeint ist statt des umst ndlichen Daten vom Datentyp X wird einfach X geschrieben Zeichen und Zeichenfelder Der Datentyp Zeichen i
232. rwertigen Bin rstellen von D2 B2 werden ignoriert Der Inhalt der beiden Register R1 und R1 1 wird als 64 Bit lange Bin rzahl ohne Vorzei chen behandelt Alle 64 Bin rstellen dieser Zahl werden verschoben Links freiwerdende Bitstellen werden mit 0 gef llt Rechts ber die Bitstelle 31 von R1 1 hinausgeschobene Bin rstellen gehen verloren Anzeige Nicht ver ndert U3119 J Z125 2 Allgemeine Befehle SRDL U3119 J Z125 2 Programmunterbrechungen Art Ursachen Adre fehler X 5C R1 nicht geradzahlig Programmierhinweise Wenn B2 0 ist bestimmt D2 allein die Verschiebeanzahl in diesem Fall darf die Angabe von B2 im Assemblerformat entfallen Wenn die Verschiebeanzahl 0 modulo 64 ist bleiben R1 und R1 1 und die Anzei ge unver ndert Beispiele Die folgenden Beispielbefehle ergeben Register 0 1 vorher Beispielbefehl Register 0 1 nachher Anzeige 0 0 0 0101 unver ndert I Tele LOTT unver ndert 1 A DER 1 unver ndert oben Te 1 unver ndert Im Unterschied zum Befehl SRDA wird bei SRDL der Wert der Bitstelle 0 des Registers R1 nicht nach rechts ausgebreitet stattdessen werden links freiwerdende Bitstellen immer mit 0 aufgef llt 153 SRL 154 Allgemeine Befehle Shift Right Single Logical Funktion Der Befehl SRL verschiebt eine 32 Bit lange Bin rzahl in einem Mehrzweckregister um eine angegebene Anzahl von Bin rstellen logisch nach rechts Die Anzeige wird nicht ver
233. s 0 1 11111 A Operandl A Operandl R1 1 LILLIA T L nge Operandl II I II L nge Operandl 1 11111 A Operand2 A Operand2 R2 1 F llbyte L nge Operand2 F llbyte L nge Operand2 bedeutet wird ignoriert Der Vergleich erfolgt logisch von links nach rechts Er endet wenn entweder Ungleich heit festgestellt wird oder das Ende des l ngeren Operanden erreicht ist Wenn die Ope randen verschiedene L nge haben wird der k rzere Operand so behandelt als sei er rechts mit F llbytes auf die L nge des l ngeren Operanden aufgef llt Die Codierung dieser F llbytes wird dabei dem h chstwertigen Byte von R2 1 entnommen Der Befehl CLCL ist hardwareseitig unterbrechbar Bei einer Unterbrechung wird der bis dahin erreichte Vergleichsfortschritt in den Registerpaaren R1 und R2 festgehalten durch Abspeicherung der hochgez hlten Adressen und der heruntergez hlten L ngen Nach der Unterbrechung wird dann der Vergleich an der unterbrochenen Hauptspeicher stelle fortgesetzt Nach der Befehlsausf hrung enthalten die Registerpaare R1 und R1 1 bzw R2 und R2 1 folgende Werte Wenn die beiden Operanden gleich sind enthalten die Register R1 und R2 die um die L ngenfelder in R1 1 bzw R2 1 erh hten Adressen des ersten Operanden bzw des zweiten Operanden die L ngenfelder in R1 1 bzw R2 1 enthalten den Wert 0 Wenn die Operanden ungleich sind und die Ungleichheit nicht im Bereich der F ll bytes aufgetreten
234. ses ist um 128 zu gro andernfalls erfolgt keine Programmunterbrechung und als Endergebnis ist eine echte Null erzeugt Bei MDXR MXD und MXR wird kein Exponenten Unterlauf erkannt wenn nur der untere Teil unterl uft Das Vorzeichen des Endergebnisses wird nach den blichen algebraischen Regeln ermittelt eine echte Null hat jedoch immer ein positives Vorzeichen Anzeige Nicht ver ndert Programmunterbrechungen Art Adre umsetzungsfehler Adre fehler Exponenten berlauf Exponenten Unterlauf Gewicht Ursachen ME MD MXD Lesezugriff auf Operand2 unm glich falsche Gleitpunktregisterangabe oder D2 X2 B2 keine Doppel Wortgrenze Produkt Charakteristik gt 127 Produkt Charakteristik lt 0 Programmierhinweise Die Vertauschung von Multiplikand und Multiplikator ver ndert in keinem Falle das Ergebnis Bei MER und ME werden f r die Mantissenmultiplikation die rechten 32 Bit der ver wendeten Gleitpunktregister ignoriert Allerdings werden die rechten 32 Bit von R1 bei diesen Befehlen durch das Produkt berschrieben Bei MXDR und MXD wird der Inhalt des Gleitpunktregisters R1 2 f r die Mantissen multiplikation ignoriert Sein Inhalt wird aber durch den unteren Teil des Produkts berschrieben Bei MXDR wird auch der Inhalt des Gleitpunktregisters R2 2 igno riert Durch das BS2000 wird das Maskenbit f r Exponenten Unterlauf in der Program maske mit 1 vorbesetzt so da unter den oben beschriebenen Bed
235. sichtlich im 8 Bit Code 1 U3119 J Z125 2 278 7 2 Mnemo Code 700 ID m m m a E GGATMWDE WR XR DBBBmmpP mm mm mn PI gt t w D LR BAS BASR BASSM BC BCR BCT BCTR BS BXH BXLE CD CDR Q 10 un PYA SE2ARA2EER2RQ aaa A a J w Sis oO DDR DE DER U3119 J 2125 2 Op Cod Bef L nge Typ in Byte III III N J D D J W KAUN DIDKIXK DKI KW IR DIR DI DKI KIKK E J D V IN DDIN DUD VV V I W XXU IJU In HI UN X X RX RX RR RX RR DDR BR BDPBOSDPRRDOS BRD RR DER RB RD DER DB DDEBDND EBD DENKE NDONDIE HD DIS a Befehle nach mnemotechnischem Code An Bef zeige art ja Allg ja Glp ja Glp ja Glp ja Glp ja Allg ja Allg ja Allg ja Dez ja Allg ja Glp ja Glp ja Glp ja Glp ja Glp nein Allg nein Allg nein Allg nein Allg nein Allg nein Allg nein Allg nein Allg nein Allg nein Allg nein Allg nein Allg ja Allg ja Glp ja Glp ja Allg ja Glp ja Glp ja Allg ja Allg ja Allg ja Allg ja Allg ja Allg ja Allg ja Dez nein ESA ja Allg ja Allg nein Allg nein Allg nein Allg nein Glp nein Glp nein Glp nein Glp Befehle nach mnemotechnischem Code Assembler format R1 D2 X2 B2 R1 D2 X2 B2 R1 R2 R1 D2 X2 B2 R1 R2 R1 D2 X2 B2 R1 D2 X2 B2 R1 R2 D1 L1 B1 D2 L2 B2 R1 R2 R1 D2 X2 B2 R1 R2 R1 D2 X2 B2 R1 R2 R1 R2 R1 D2 X2 B2 R1 R2 R1 D2 X2 B2
236. sierte Gleitpunktzahlen 214 Normalisierung 214 NR 121 Null bei Gleitpunktzahlen 214 O O 41 124 OC 124 ODER 78 124 Ol 120 124 Operanden L nge 24 25 Operandenadresse 7 Operationscode 22 24 Operationscode erweiterte mnemotechnische 43 166 Operationscode erweiterter mnemotechnischer 287 OR 124 P P Konstantentyp 184 PACK 79 127 128 primary space mode 265 267 Privilegierte Operation 14 Programmaske 15 34 35 85 86 146 147 260 Programmraum 6 261 262 Programmunterbrechungen 13 PSW Bit 265 267 R R Feld 7 11 24 read only 79 80 Reale Adressen 5 reentrant 79 Register 10 U3119 J Z125 2 Stichw rter Register Operand 24 RR Befehlstyp 22 RRE Befehlstyp 22 RS Befehlstyp 23 Rundung von Bin rzahlen 149 151 Rundung von Dezimalzahlen 206 Rundung von Gleitpunktzahlen 244 RX Befehlstyp 22 S S 129 134 135 159 S Befehlstyp 23 S Skalenfaktor 251 SAC 270 Schleifen Programmierung 50 Schutzziffer 218 222 226 229 233 253 258 259 SD 220 252 SDR 252 SE 252 255 Seite 5 Sendefeldziffern ED EDMK 195 SER 252 Serialisierung 69 173 SH 131 134 135 SHAREWD 71 SI Befehlstyp 23 signed siehe vorzeichengerechte Bin rzahlenarithmetik 19 Signifikanz 260 Signifikanz bei Bin rzahlen 18 20 Signifikanz bei ED oder EDMK 195 Signifikanz bei Gleitpunktzahlen 14 15 214 Signifikanz Indikator 195 Signifikanzstarter 194 SL 133 135 159 S
237. ssig sind Dazu setzt man in der Umsetzungstabelle alle Funktionsbyte die solchen Zeichen entsprechen auf einem Wert 00 und alle brigen Funktionsbyte auf den Wert 00 U3119 J Z125 2 171 TRT 172 Allgemeine Befehle Beispiel Das Zielfeld DFIELD soll untersucht werden ob in ihm die Zeichen oder vorkom men Dies kann geschehen durch die Datenerkl rung CONVTB 256X 00 Funktionsbyte 00 f r brige CONVTB Zeichen X CoL Funktionsbyte 01 f r CONVTB X 02 Funktionsbyte 02 f r zusammen mit den Befehlen Pad L schen Register 1 und 2 2 2 siehe Programmierhinweise DFIELD CONVTB NOSIGN Kein oder in DFIELD TRAILING oder im letzten Byte EMBEDDED oder aber nicht im letzten Byte Im Falle von TRAILING und EMBEDDED enth lt das Mehrzweckregister 1 die je nach Adressierungsmodus entweder 24 Bit lange oder 31 Bit lange Adresse des ersten oder in DFIELD und das Mehrzweckregister 2 in seinem niedrigstwertigen Byte das zugeh rige Funktionsbyte hier also entweder 01 oder 02 Man beachte die abschlie Bende ORG Anweisung sie verhindert da eine etwa folgende Datenerkl rung in CONVTB hineinreicht U3119 J Z125 2 Allgemeine Befehle TS Test and Set Funktion Der Befehl TS setzt die Anzeige gem dem Wert des h chstwertigen Bit eines Haupt speicher Byte und berschreibt dann dieses Byte mit FF W hrend seines Ablaufs ist der Befehl nicht u
238. st f r Einzelzeichen vorgesehen die z B von einer Tastatur kom men oder auf einen Drucker ausgegeben werden Beispiele f r solche Datenelemente sind die Buchstaben unseres Alphabets oder die Interpunktionszeichen in Texten Jedes Zeichen wird in einem Byte dargestellt Die Abbildung eines Zeichens auf die 8 Bit eines Byte ist durch den EBCDI Code bestimmt Dieser Code bestimmt z B da das Zeichen A bin r durch die Codierung 11000001 d h sedezimal durch C1 46 repr sentiert wird Eine vollst ndige EBCDIC Tabelle findet sich im Anhang Der Datentyp Zeichenfeld ist f r eine Menge zusammengeh riger Zeichen Daten vom Datentyp Zeichen vorgesehen z B f r ein Wort der Sprache oder auch einen gesamten Text Ein Zeichenfeld wird in aufeinanderfolgenden Byte des Hauptspeichers dargestellt Es wird gegen ber den Befehlen die Zeichenfelder verarbeiten durch zwei Angaben identifiziert durch die Adresse des ersten h chstwertigen Byte und durch die L nge d h durch die Anzahl der Byte die das Zeichenfeld umfa t Vergleich von Zeichen und Zeichenfeldern Der Vergleich von zwei Operanden vom Datentyp Zeichen oder Zeichenfeld erfolgt bit weise von links nach rechts Zeichen und Zeichenfelder werden dabei als Bitfolgen behandelt Bitstellen die gleichweit vom Anfang ihrer Operanden liegen hei en gegen berliegend Der Vergleich endet wenn entweder alle gegen berliegenden Bitstellen beider Operanden gleich sind oder
239. stelle des Befehls CL w rde der Befehl C die Anzeige 1 Low setzen U3119 J Z125 2 57 CLC 58 Allgemeine Befehle Compare Logical Characters Funktion Der Befehl CLC vergleicht zwei Zeichenfelder logisch Die Anzeige wird gem dem Vergleichsergebnis gesetzt Assemblerformat Maschinenformat 0 8 20 32 36 47 Beschreibung Das durch D1 B1 adressierte Zeichenfeld im Hauptspeicher der L nge L Byte wird logisch von links nach rechts mit dem durch D2 B2 adressierten Zeichenfeld gleicher L nge verglichen Der Befehl wird bei Ungleichheit beendet oder wenn die Operanden abgearbeitet sind Anzeige 0 Equal Operandi Operand2 1 Low Operandi lt Operand2 2 High Operandi gt Operand2 3 Nicht verwendet Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Lesezugriff auf Operandl oder Operand2 unm glich U3119 J Z125 2 Allgemeine Befehle Programmierhinweise CLC Mit dem Befehl CLC ist ein Vergleich bis zu einer Feldl nge von 256 Byte m glich F r gr ere Feldl ngen steht der Befehl CLCL zur Verf gung Die zu vergleichenden Zeichenfelder d rfen sich in beliebiger Weise berlappen Man kann sich dies zunutze machen um z B ein Zeichenfeld daraufhin zu berpr fen ob in ihm ein Sub Zeichenfeld wiederholt vorkommt siehe Beispiel3 Beispiele ame FIELDI FIELD2 FIELD3 Beispiell Beispiel2 Beispiel3 K k U3119 J Z125 2
240. t anzahl gt Maschinenformat 0 8 12 16 20 31 Beschreibung Der Inhalt des Mehrzweckregisters R1 wird als 32 Bit lange Festpunktzahl mit dem Vor zeichen an der Bitstelle 0 behandelt Die durch D2 B2 bestimmte Adresse wird nicht als Datenadresse verwendet stattdes sen bilden die rechten 6 Bit dieser Adresse die Anzahl der Bin rstellen um die die Fest punktzahl nach links verschoben wird Diese Anzahl liegt im Bereich zwischen 0 und 63 Die h herwertigen Bin rstellen von D2 B2 werden ignoriert Bei der Linksverschiebung bleibt das Vorzeichen unver ndert nur die brigen 31 Bitstel len werden verschoben Rechts freiwerdende Bitstellen werden mit O gef llt links ber die Bitstelle 1 von R1 hinausgeschobene Bitstellen gehen verloren Wenn ein oder mehrere vom Vorzeichenbit verschiedene Bit ber die Bitstelle 1 des Registers R1 hinausgeschoben werden tritt Festpunkt berlauf ein und die Anzeige wird auf 3 Overflow gesetzt Wenn das Bit f r Festpunkt berlauf in der Programmaske auf 1 gesetzt ist BS2000 Standard erfolgt au erdem eine Programmunterbrechung Die Bitstellen 12 bis 15 des Befehls werden ignoriert U3119 J Z125 2 Allgemeine Befehle SLA Anzeige O Zero Verschobene Festpunktzahl 0 1 Minus Verschobene Festpunktzahl lt 0 Bit O von R1 1 2 Plus Verschobene Festpunktzahl gt 0 Bit O von R1 0 3 Overflow Es wurden ein oder mehrere vom Vorzeichenbit verschiedene Bit ber die Bitstelle 1 von R1
241. tel 4 e Gleitpunktbefehle Kapitel 5 e ESA Befehle Kapitel 6 Innerhalb dieser Gruppen sind die Befehle alphabetisch nach ihrer mnemotechnischen Bezeichnung geordnet Das Kapitel 2 enth lt grundlegende Erl uterungen U3119 J Z125 2 Einleitung 1 3 U3119 J Z125 2 nderungen nderungen gegen ber dem Vorg nger Handbuch Beschreibung der ESA Unterst tzung im Kapitel 2 2 1 3 2 1 4 2 2 2 und im neuen Kapitel 6 ESA Befehle Befehlslisten im Anhang 7 2 und 7 3 mit den ESA Befehlen erg nzt Der Zugriff auf gemeinsam benutzte Daten in Multiprozessor Anlagen ist im Anhang 7 6 beschrieben Grundlagen 2 1 U3119 J Z125 2 Hauptspeicher Adressierung Grundlagen Hauptspeicher Adressierung Der Hauptspeicher kann als Folge einzelner Bit betrachtet werden Diese Folge ist in Einheiten von jeweils 8 Bit unterteilt die Byte genannt werden Jedem Byte ist eine ein deutige ganze Zahl zugeordnet genannt Adresse die es identifiziert Aufeinanderfol gende Byte haben aufeinanderfolgende Adressen Der Wertebereich der Adressen der Adre raum beginnt bei 0 und endet bei einer systemspezifischen Obergrenze Virtuelle Adressen Alle in diesem Handbuch beschriebenen Assemblerbefehle benutzen ausschlie lich sog virtuelle Adressen und verarbeiten nur Operanden deren Adressen virtuell sind Auch die Befehle selbst sind virtuell adressiert In den Zentraleinheiten selbst werden jedoch noch zwei weitere Arten von Adress
242. telle ignoriert wird F r ausgew hlte Werte aus dem Wertebereich einer 32 Bit langen Festpunktzahl erge ben sich folgende bin re und sedezimale Darstellungen Festpunktzahl Bin re Darstellung Sedezimale Darstellung 0 00 00 00 00 1 00 00 00 01 2 00 00 00 02 2147483647 231 1 IF FF FF FF m 22 FF FF FF EF FF FF FF FE 2147483648 231 80 00 00 00 Festpunktzahlen haben folgende wesentliche Eigenschaften der Wertebereich positiver b Bit langer Festpunkzahlen reicht von 0 bis 2b 1 der Wertebereich negativer b Bit langer Festpunktzahlen reicht von 1 bis 2 1 F r 32 Bit lange Festpunktzahlen liegt der Wertebereich demzufolge zwischen 231 2147483648 und 231 1 2147483647 Die kleinste negative Festpunktzahl hat also kein positi ves Pendant Die Menge der Festpunktzahlen die lt 0 sind ist um Eins gr er als die der Fest punktzahlen die gt 0 sind Es gibt keine negative Null Die h chstwertige signifikante Bin rstelle einer positiven oder negativen Festpunkt zahl ist die h chstwertige Bin rstelle die ungleich dem Vorzeichenbit ist U3119 J Z125 2 Grundlagen Datentypen Hinweis Alternative Methoden f r die Bildung des Zweierkomplements einer Bin rzahl sind 1 Man invertiere alle Bitstellen der Bin rzahl addiere 1 auf die so gebildete Zahl und ignoriere einen etwaigen bertrag ber die h chstwertige Bin rstelle 2 Man invertiere alle Bitstellen links
243. ten 32 Bit des Gleitpunkregisters R1 unver ndert U3119 J Z125 2 237 LD LDR LE LER Gleitpunktbefehle 238 Load Funktion Die Befehle LER LE LDR und LD laden eine Gleitpunktzahl in ein Gleitpunktregister Die Anzeige wird nicht ver ndert Assemblerformate kurze Operanden LER R1 R2 R1 R2 0 2 4 oder 6 LE R1 D2 X2 B2 R1 0 2 4 oder 6 und A lange Operanden LDR R1 R2 R1 R2 0 2 4 oder 6 LD R1 D2 X2 B2 R1 0 2 4 oder 6 und Maschinenformate LER RR x 38 R2 Kurze Operanden Lange Operanden D2 Lange Operanden Beschreibung Die kurze LE und LER bzw lange LD und LDR Gleitpunktzahl in dem Gleitpunktregi ster R2 LER und LDR bzw in dem Hauptspeicherwort LE oder Hauptspeicher Dop pelwort LD wird in das Gleitpunktregister R1 geladen Es findet keine Normalisierung statt U3119 J Z125 2 Gleitpunktbefehle LD LDR LE LER Anzeige Nicht ver ndert Programmunterbrechungen Art Ursachen Adre umsetzungsfehler x 4a8 LE LD Lesezugriff auf Operand2 unm glich Adre fehler XN GGC falsche Gleitpunktregisterangabe oder D2 X2 B2 keine Doppel Wortgrenze Programmierhinweise Die Befehle LE und LER lassen die rechten 32 Bit des Gleitpunkregisters R1 unver n dert U3119 J Z125 2 239 LNDR LNER Gleitpunktbefehle 240 Load Negative Funktion Die Befehle LNER und LNDR laden die Gleitpunktzahl im Gleitpunktregister R2 mit nega tivem V
244. ten vier Bit des Byte SEMAPHOR auf 0416 Die linken vier Bit bleiben unver ndert 123 O OC Ol OR Allgemeine Befehle OR Funktion Die Befehle OR O Ol und OC bewirken bitweise die logische ODER Verkn pfung zweier Operanden Die Anzeige wird gem dem Wert des Ergebnisses gesetzt Assemblerformate OR R1 R2 O R1 D2 X2 B2 D2 X2 B2 Wortgrenze GI D1 B1 I2 x 00 lt I2 lt X FF oc D1 L B1 D2 B2 1 lt L lt 256 Maschinenformate 0 Beschreibung Die Bit des ersten Operanden werden gem der folgenden Tabelle durch die gegen berliegenden Bit des zweiten Operanden ver ndert Das Ergebnis ersetzt den ersten Operanden 124 U3119 J Z125 2 Allgemeine Befehle O OC Ol OR Tabelle der ODER Verkn pfungen Bitwert Bitwert Bitwert im ersten Operanden im zweiten Operanden im Ergebnis 0 0 0 0 nl a 1 0 I 1 1 1 Operanden Befehl Operandl Operand2 OR Inhalt von Register R1 Inhalt von Register R2 O Inhalt von Register R1 mit D2 X2 B2 adressiertes Wort OI mit D1 B1 adressiertes Byte Direktoperand I2 OC mit D1 B1 adressiertes Feld mit D2 B2 adressiertes Feld der L nge L Byte der L nge L Byte Anzeige O Zero Ergebnis 0 1 Not Zero Ergebnis 0 2 Nicht verwendet 3 Nicht verwendet Programmunterbrechungen Adre umsetzungsfehler x 4a8 Lesezugriff auf Operand2 unm glich Lese Schreibzugriff auf Operandl unm glich Lese Schreibzugriff auf Operand
245. tlung des proze spezifischen Zeitverbrauchs dient der BS2000 Makro GEPRT Das Tagesdatum und die Uhrzeit liefert der BS2000 Makro GDATE Beijeder System Initialisierung des BS2000 wird die Tagesuhr auf einen Wert relativ zum Basisdatum 1 Januar 1900 0 00 Uhr eingestellt so da der Bin rwert 0 der Tagesuhr diesem Datum entspricht Demzufolge enth lt die Tagesuhr z B am 1 Januar 1987 um 0 00 den Wert 87 365 21 24 60 60 106 21 9C OF 80 D6 CO 00 00 00 Aus der Erh hung der Tagesuhr um 212 nach jeder Mikrosekunde folgt da die Bit stelle 31 alle 1 048576 Sekunden um 1 erh ht wird Wenn keine genauere Aufl sung gebraucht wird gen gt das erste Wort des von STCK gespeicherten Doppelworts Beispiel TIMEBEF DS D TIMEAFT DS D TIMEDIFF DC PL8 0 00 STCK TIMEBEF STCK TIMEAFT LM 0 1 TIMEAFT Bilden Diff TIMEAFT TIMEBEF SL 1 TIMEBEF 4 BNL 6 bertrag Behandlung BCTR 0 0 S 0 TIMEBEF D 0 F 40960000 Skalieren auf 100 stel Sek CVD 1 TIMEDIFF Quotient in Reg 1 Das Beispiel zeigt die Benutzung des STCK Befehls zur Zeitmessung Vor und nach dem zu messenden Vorgang wird die Tagesuhr gelesen Dann wird deren Differenz gebildet Nach dem Befehl S enthalten die Register O und 1 die Differenz in Vielfachen von 4 096 000 000 stel Sekunden als 64 Bit lange Festpunktzahl Der rechte Teil der Differenz wird logisch der linke vorzeichengerecht gebildet Der Befehl D liefert die Zeit abgerundet auf
246. tpunktzahlen Diese befinden sich entweder beide in Gleitpunktregistern oder es befindet sich die eine von ihnen im Haupt speicher und die andere in einem Gleitpunktregister Die meisten Gleitpunktbefehle erzeugen normalisierte Ergebnisse die die h chstm gli che Genauigkeit repr sentieren f r Addition und Subtraktion gibt es jedoch auch Befeh le die nicht normalisierte Ergebnisse liefern weil dies in manchen Anwendungsf llen z B bei Zwischenergebnissen w nschenwert ist Gleitpunktzahlen Vorzeichen Charakteristik Mantisse Jede Gleitpunktzahl besteht aus dem Vorzeichen der Charakteristik und der Mantisse Das Vorzeichen ist eine 1 Bit Zahl Eine 0 steht f r ein positives eine 1 steht f r ein negatives Vorzeichen Die Charakteristik ist eine vorzeichenlose 7 Bit Zahl sie repr sentiert einen Exponenten zur Basis 16 Der Exponent selbst ergibt sich durch Subtraktion von 64 von der Charak teristik Der Wertebereich der Charakteristik reicht von 0 bis 127 der des Exponenten reicht von 64 bis 63 Die Mantisse ist ein Sedezimalbruch aus 6 14 oder 28 Sedezimalstellen je nach Format s u der implizite Sedezimalpunkt dieses Bruchs befindet sich links vor der h chst wertigen Sedezimalstelle Der Wert einer Gleitpunktzahl ergibt sich aus Vorzeichen und dem Produkt aus Man tisse und der mit dem Exponenten potenzierten Basis 16 Wert einer Gleitpunktzahl 1 Vorzeichen Mlantisse 16F Xponent 1 Yorzeichen lantisse
247. tritt Festpunkt berlauf ein und die Anzeige wird auf 3 Overflow gesetzt Wenn das Bit f r Festpunkt berlauf in der Programmaske auf 1 gesetzt ist BS2000 Standard erfolgt au erdem eine Programmunterbrechung U3119 J Z125 2 139 SLDA Allgemeine Befehle 140 Anzeige O Zero Verschobene Festpunktzahl 0 1 Minus Verschobene Festpunktzahl lt 0 Bit O von R1 1 2 Plus Verschobene Festpunktzahl gt 0 Bit O von R1 0 3 Overflow Es wurden ein oder mehrere vom Vorzeichenbit verschiedene Bit ber die Bitstelle 1 von R1 hinausgeschoben Programmunterbrechungen Art Ursachen Adre fehler x 5C R1 nicht geradzahlig Festpunkt berlauf XS siehe Anzeige 3 Overflow Programmierhinweise Wenn B2 0 ist bestimmt D2 allein die Verschiebeanzahl in diesem Fall darf die Angabe von B2 im Assemblerformat entfallen Wenn die Verschiebeanzahl 0 modulo 64 ist werden R1 und R1 1 nicht ver n dert aber es wird die Anzeige gesetzt Die Verschiebung um eine variable Anzahl von Bitstellen wird erreicht indem man die Variable in das Mehrzweckregister B2 l dt Beispiele Die folgenden Beispielbefehle ergeben U3119 J Z125 2 Allgemeine Befehle SLDA Man beachte die beiden F lle von Festpunkt berlauf Anzeige 3 dieser Festpunkt berlauf kommt zustande weil ein Bit ungleich dem Vorzeichenbit ber die Bitstelle 1 von Register 0 hinausgeschoben wurde Die Anzeige 3 Overflow zeigt an da das Ergeb
248. uf 1 5 Dezimal Uberlauf 2 6 Exponenten Unterlauf 3 7 Signifikanz Mantisse 0 Durch das BS2000 werden alle 4 Bit der Programmaske mit 1 vorbesetzt so da beim Auftreten des entsprechenden Ereignisses eine Programmunterbrechung ein tritt Durch den Befehl SPM kann aber ein Anwenderprogramm die Vorbesetzung ndern Beispiel ICM 15 B 1000 X 3C SPM 15 Anzeige 3 Overflow SLR 11 11 Anzeige 2 Plus Der Befehl setzt die Anzeige auf 3 und die Programmaske auf C Dadurch werden etwa folgende Programmunterbrechungen wegen Exponentunterlaufs und Signifikanz unterbunden aber solche wegen Festpunkt und Dezimal berlaufs zugelassen Der Befehl SLR 11 11 l t die Programmaske unver ndert aber setzt die Anzeige auf 2 Die sen Wert liest der Befehl IPM so da zuletzt das h chstwertige Byte des Registers 11 den Wert X 2C nicht X 3C enth lt U3119 J Z125 2 Allgemeine Befehle L LR Load Funktion Die Befehle LR und L bertragen eine 32 Bit lange Bin rzahl aus einem Mehrzweckregi ster bzw aus einem Wort des Hauptspeichers in ein Mehrzweckregister Die Anzeige wird nicht ver ndert Assemblerformate LR R1 R2 L R1 D2 X2 B2 D2 X2 B2 Wortgrenze Maschinenformate D2 0 8 12 16 20 31 Beschreibung Das mit D2 X2 B2 adressierte Wort des Hauptspeichers L bzw der Inhalt des Mehr zweckregisters R2 LR wird in das Mehrzweckregister R1 bertragen Befehl Operandl Operand2 LR
249. und zur Subtraktion Befehle die nicht normalisieren Manche Befehle lassen ihr Ergebnis unver ndert so da es von den Eingangsoperanden abh ngig ist ob das Ergebnis normali siert ist oder nicht Der Befehl f r die erweiterte Divsion DXR ist nur auf Zentraleinheiten verf gbar die ber den 31 Bit Adressierungsmodus verf gen Der mnemotechnischen Operationscode jedes Gleitpunktbefehls enth lt an der zweiten oder dritten Stelle eine Kennzeichnung f r das Format der von ihm verarbeiteten Gleit punktzahlen Die folgenden Buchstaben bedeuten generell xsocm kurzes Gleitpunktformat normalisiernd kurzes Gleitpunktformat nicht normalisierend langes Gleitpunktformat normalisierend langes Gileitpunktformat nicht normalisierend erweitertes Gleitpunktformat normalisierend Programmierhinweise U3119 J Z125 2 Eine lange Gleitpunktzahl kann in eine erweiterte Gleitpunktzahl verwandelt werden indem man ihr eine lange Gleitpunktzahl anf gt deren Mantisse 0 ist dies kann insbesondere eine echte Null sein Der umgekehrte Vorgang n mlich die Konvertie rung einer erweiterten in eine lange Gleitpunktzahl geschieht entweder durch den LRDR Befehl oder einfach durch das Weglassen des unteren Teils Wenn kein Fall von Exponenten berlauf oder Unterlauf vorliegt dann stellt die zweite lange Gleitpunktzahl einer erweiterten Gleitpunktzahl genau dann deren kor rekten unteren Teil dar wenn ihre Charakteristik um mindestens 14 kleine
250. ung von DFIELD und reduziert sie auch selbst ndig um 1 Beispiel 2 Die folgenden beiden Befehlsfolgen AAAA und BBBB bewirken das Gleiche n mlich die bertragung einer variablen Anzahl von Byte aus SFIELD in DFIELD AAAA LH 5 SLENGTH SLENGTH zu bertragende Bytezahl 5 0 minus 1 5 MOVEINST MOVEINST DFIELD 0 SFIELD BBBB 5 SLENGTH SLENGTH zu bertragende Bytezahl 5 0 5 MOVEINST 1 Eintrag der um 1 verminderten MOVEINST DFIELD 0 SFIELD L nge ins L Feld eines MVC Der Unterschied besteht darin da die Befehlsfolge AAAA read only bleibt die Befehls folge BBBB jedoch nicht Der Befehl EX f hrt den Befehl MVC zwar mit ge ODER tem Byte 1 aus aber ver ndert ihn selbst nicht EX ist nahezu unverzichtbar bei Problemen in denen der Programmtext konstant blei ben mu aber dennoch dynamische Ver nderungen in den Parametern einzelner Be fehle erforderlich sind U3119 J Z125 2 Allgemeine Befehle IC Insert Character Funktion Der Befehl IC bertr gt ein Byte aus dem Speicher in das niedrigstwertige Byte eines Mehrzweckregisters Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen Maschinenformat 0 20 31 Beschreibung Das mit D2 X2 B2 adressierte Byte des Hauptspeichers wird in das Byte 3 d h in die Bitstellen 24 bis 31 des Mehrzweckregisters R1 geladen Die Bitstellen 0 bis 23 von R1 bleiben unver ndert Anzeige Nicht ver ndert Programmunterbrechungen
251. ve Ganzzahl So ergibt z B die Zahl 1 bei jedweder Rechtsverschiebung wieder die Zahl 1 oder es ergibt die Zahl 5 wenn sie um 2 Bin rstellen nach rechts geschoben also durch 4 dividiert wird die Zahl 2 und nicht 1 Siehe dazu die Beispiele Beispiele Die folgenden Beispielbefehle ergeben Register 0 vorher Beispielbefehl Register 0 nachher Anzeige 0 0101 5 2 1 1027 9 1 0 0101 5 0 1 1011 5 1 0 0001 1 0 EREA 1 1 l 221 1 0 10 001 231 1 1 In den Beispielen ist jeweils die Rechtsverschiebung einer positiven Festpunktzahl der Rechtsverschiebung des negativen Pendants gegen bergestellt um die vielleicht unge wohnten Unterschiede zu verdeutlichen U3119 J Z125 2 149 SRDA 150 Allgemeine Befehle Shift Right Double Funktion Der Befehl SRDA verschiebt eine 64 Bit lange Festpunktzahl in einem Mehrzweckregi ster Paar vorzeichengerecht um eine angegebene Anzahl von Bin rstellen nach rechts Die Anzeige wird gem dem Wert des Ergebnisses gesetzt Assemblerformate SRDA R1 D2 B2 R1 geradzahlig oder auch SRDA Rl lt anzahl gt R1 geradzahlig Maschinenformat 0 8 12 16 20 31 Beschreibung Das R1 Feld des Befehls bestimmt ein Paar von Mehrzweckregistern bestehend aus den Registern Ri und R1 1 Ri mu geradzahlig sein sonst erfolgt eine Programm unterbrechung wegen Adre fehlers Die Bitstellen 12 bis 15 des Befehls werden igno riert Die durch D2 B2
252. verbinden oder l sen ALINF Informationen ber Zugriffslisten anfordern Bei der Adressierung ber Zugriffsregister ist zu beachten Das zum Zugriffsregister geh rende Mehrzweckregister ist als Basisregister zu verwen den Wird ein Mehrzweckregister z B als Indexregister verwendet so wird das entspre chende Zugriffsregister ignoriert Wird in einem Befehl ein Mehrzweckregister als Basisre gister spezifiziert dann mu im AR Modus das entsprechende Zugriffsregister richtig versorgt sein Wegen der strengen Zuordnung von Zugriffsregistern zu Basisregistern d rfen Index und Basisregister im AR Modus nicht vertauscht werden 262 U3119 J Z125 2 ESA Befehle CPYA Copy Access Register Funktion Der Befehl CPYA bertr gt den Inhalt aus einem Zugriffsregister in ein Zugriffsregister Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen CPYA R1 R2 Maschinenformat 0 16 24 28 31 Beschreibung Der Inhalt des Zugriffsregisters R2 wird in das Zugriffsregister R1 bertragen Die Bitstellen 16 bis 23 des Befehls werden ignoriert Anzeige Nicht ver ndert Programmunterbrechungen Keine U3119 J Z125 2 263 EAR 264 ESA Befehle Extract Access Register Funktion Der Befehl EAR bertr gt den Inhalt aus einem Zugriffsregister in ein Mehrzweckregi ster Die Anzeige wird nicht ver ndert Assemblerformat Name Operanden Bemerkungen Maschinenformat 0 16 24
253. von Gleitpunktzahlen 218 Wort 8 WROUT 164 X X 177 X Feld 8 24 25 XC 115 177 179 XI 177 220 XR 177 179 XS Programme 261 XS Zentraleinheiten 48 Z Z Konstantentyp 182 Z hler 69 ZAP 210 211 Zeichen 16 Zeichenfeld 16 Ziel Befehl 78 Ziffernselektor 194 Zugriffregister 8 Zugriffsregister 10 261 262 263 264 268 272 Zweierkomplement 18 19 91 97 99 134 207 Zweierpotenzen 288 zyklische Vertauschung 168 U3119 J Z125 2 313 Stichw rter 314 U3119 J Z125 2 Inhalt oa oOPD 2 1 1 2 1 2 2 1 3 2 1 4 2 1 5 2 1 6 2 2 2 2 1 2 2 2 2 2 3 2 3 2 4 2 5 2 5 1 2 5 2 2 5 3 2 6 U3119 J Z125 2 Einleitung Zielgruppe Konzept des Handbuchs nderungen gegen ber dem Vorg nger Handbuch Grundlagen Hauptspeicher Adressierung Virtuelle Adressen 24 Bit lange und 31 Bit lange Adressen Adressierungsmodi Befehlsadressen Befehlsfolgeadressen Operandenadressen Adre berechnung Ausrichtung auf Halbwort Wort und Doppelwortgrenzen Register Mehrzweckregister Zugriffsregister Gleitpunktregister Anzeige Condition Code Programmunterbrechungen Datentypen j Zeichen und Zeichenfelder Bin rzahlen Bitfeld Befehlsaufbau Allgemeine Befehle Add Add Halfword Add Logical Branch and Link Branch and Save Branch and Save and Set Mode Branch on Condition Branch on Count Branch and Set Mode Branch on Index Inhalt NNNOTI OO Van Inhalt Com
254. wenn ein weiterer Prozes sor oder ein weiteres Programm oder ein Kanalprogramm Ein Ausgabe versucht diese Speicherstelle zu ndern Eine sichere Methode zum Update eines gemeinsam benutzten Speicherworts ist im Anhang 7 6 sowie in den Programmierhinweisen der Befehle CS und CDS beschrieben Beispiel RC XC XC Dieser ber hmte Trick tauscht die Hauptspeicherfelder A und B ohne Hilfsfeld aus PwD w gt w Der sch ne Algorithmus enth lt brigens eine Ausnahme wenn sich die beiden Berei che A und B berlappen oder identisch sind wird der gemeinsame Teil mit bin ren Nullen gef llt anstatt unver ndert zu bleiben Man kann auf die gleiche Weise mit 3 Befehlen XR die Inhalte zweier verschiedener Mehrzweckregister austauschen allerdings nicht ein Hauptspeicherwort mit einem Mehr zweckregister weil es keinen X Befehl gibt dessen erster Operand ein Hauptspeicher wort adressiert U3119 J Z125 2 179 Dezimalbefehle berblick 4 Dezimalbefehle berblick Die Dezimalbefehle dienen a der Addition Subtraktion Multiplikation Division und dem Vergleich von zwei Dezi malzahlen AP SP MP DP CP b der Verschiebung und oder Rundung einer Dezimalzahl SRP c der Druckaufbereitung einer oder mehrerer aufeinanderfolgender Dezimalzahlen ED EDMK Die von den Dezimalbefehlen verarbeiteten Dezimalzahlen sind vorzeichenbehaftete Ganzzahlen zur Basis 10 mit maximal 31 Stellen Sie werden bei al
255. yte 0046 die linken 1 oder 8 Bit vor den Adressen in R1 und R2 sind gleich 0 gesetzt aber die linken 8 Bit von R1 1 und R2 1 F llbyte sind unver ndert U3119 J Z125 2 Allgemeine Befe Die hle MVCL Adre fortschaltung im Sendefeld und im Empfangsfeld geschieht im 24 Bit Adressie rungsmodus modulo 22 und im 31 Bit Adressierungsmodus modulo 231 Demzufolge wird nach der bertragung aus oder in das Byte mit der virtuellen Adresse 224 1 bzw 231 1 als n chstes aus oder in das Byte mit der Adresse 0 bertragen oder aufgef llt sofern die Operanden nicht vorher abgearbeitet sind Anzeige 0 Equal L nge des Empfangsfelds L nge des Sendefelds 1 Low L nge des Empfangsfelds lt L nge des Sendefelds 2 High L nge des Empfangsfelds gt L nge des Sendefelds 3 Overflow Empfangsfeld berlappt sich inkorrekt mit dem Sendefeld Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Schreibzugriff auf Operandl oder Lesezugriff auf Operand2 unm glich Adre fehler XE R1 oder R2 nicht geradzahlig Programmierhinweise U3119 J Z125 2 Wenn die L nge des Empfangsfelds 0 ist wird nichts bertragen oder aufgef llt und nur die Anzeige gesetzt Wenn die L nge des Sendefelds 0 ist wird das Empfangsfeld nur mit F llbyte auf gef llt Damit l t sich z B ein Empfangsfeld l schen d h mit einem konstanten Bytewert f llen Man kann mit dem Befehl MVCL ein Empfangsfeld nicht auf
256. zahlen Bin rzahlen ohne Vorzeichen haben keinen eigenen Namen Die Besonder heiten der beiden Arten sind im Folgenden erl utert Bin rzahlen ohne Vorzeichen Bei Bin rzahlen ohne Vorzeichen werden alle Bin rstellen zur Darstellung ihres Betrags verwendet demzufolge sind bei aritnmetischen und Vergleichs Operationen alle Bin r stellen an der Operation beteiligt Die Begriffe positiv und negativ sind bei solchen Bin rzahlen nicht relevant Der Wertebereich b Bit langer Bin rzahlen ohne Vorzeichen reicht von 0 bis 2 1 Die kleinste Bin rzahl mit dem Wert 0 wird durch lauter O Bit die gr te Bin rzahl mit dem Wert 2P 1 wird durch lauter 1 Bit dargestellt U3119 J Z125 2 17 Datentypen 18 Grundlagen Bin rzahlen mit Vorzeichen Festpunktzahlen Bei Bin rzahlen mit Vorzeichen sie hei en Festpunktzahlen wird die h chstwertige Bin rstelle f r das Vorzeichen verwendet die Bin rstellen rechts vom Vorzeichen repr sentieren den numerischen Wert der Festpunktzahl Positive Festpunktzahlen werden durch ihren Absolut Betrag dargestellt und haben ein O Bit an der h chstwertigen Bin rstelle Negative Festpunktzahlen werden durch das Zweierkomplement ihres Absolut Betrags dargestellt und haben ein 1 Bit an der h chstwertigen Bin rstelle Das Zweierkomplement einer Zahl ist definiert als die Differenz aus 0 und dem Betrag dieser Zahl wobei ein etwaiger bertrag ber die h chstwertige Bin rs
257. zt danach einen angegebenen Adressierungsmo dus und verzweigt in diesem Modus an eine angegebene Adresse Die Anzeige wird nicht ver ndert Der Befehl BASSM ist nur im Befehlsvorrat der Zentraleinheiten verf gbar die ber den 31 Bit Adressierungsmodus verf gen Assemblerformat BASSM R1 R2 Maschinenformat 0 8 12 15 Beschreibung Der momentane Adressierungsmodus wird in die Bitstelle 0 des Mehrzweckregisters R1 und die Befehlsfolgeadresse wird in die Bitstellen 1 bis 31 des Mehrzweckregisters R1 gespeichert Wenn das R2 Feld 0 ist wird anschlie end der Adressierungsmodus gesetzt der sich aus dem Bit 0 des Mehrzweckregisters R2 ergibt und es wird in diesem Modus an die in den Bitstellen 1 bis 31 von R2 enthaltene Adresse verzweigt Diese Adresse ist je nach Adressierungsmodus 24 Bit oder 31 Bit lang Wenn das R2 Feld 0 ist wird nicht verzweigt sondern im momentanen Adressierungsmodus beim n chsten Befehl fortge fahren In beiden Mehrzweckregistern R1 und R2 bedeutet ein Wert 0 an der Bitstelle 0 den 24 Bit Adressierungsmodus und ein Wert 1 den 31 Bit Adressierungsmodus Die Sprungadresse wird ermittelt bevor das Mehrzweckregister R1 ver ndert wird Anzeige Nicht ver ndert U3119 J Z125 2 39 BASSM Allgemeine Befehle Programmunterbrechungen Keine beim Befehl selbst Wenn allerdings die Zieladresse keine Halbwortadresse ist oder auf sie nicht zugegriffen werden kann erfolgt eine entsprechende Pro
258. zu kurz ist zur Aufnahme aller Halbbyte des Sendefelds d h wenn L1 lt 212 1 ist werden die linken 2L2 L1 1 Halbbyte des Sendefelds ignoriert Empfangsfeld und Sendefeld d rfen sich berlappen Dabei ver ndern im allgemeinen sp tere Byte Operationen das Ergebnis fr herer Byte Operationen desselben Befehls Der Befehl wird so ausgef hrt als werde jedes Byte des Empfangsfelds unmittelbar dann gespeichert wenn das daf r ben tigte Byte des Sendefelds gelesen worden ist U3119 J Z125 2 175 UNPK 176 Allgemeine Befehle Anzeige Nicht ver ndert Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler Schreibzugriff auf Operandl oder Lesezugriff auf Operand2 unm glich Programmierhinweise Das Sendefeld wird nur ge ndert wenn es sich mit dem Empfangsfeld berlappt Beispiele Die folgenden Beispiele von UNPK Befehlen liefern folgende Ergebnisse FIELD vorher Beispiel Befehl FIELD nachher Anzeige ohne Belang I I ZER unver ndert ohne Belang I I 2 00012 unver ndert x 89 1 EI XxX 987 unver ndert X 23456789 1 E X F6F6F798 unver ndert Das dritte Beispiel n tzt aus da das Sendefeld FIELD nicht auf gepacktes Format gepr ft wird X 89 ist keine korrekte gepackte Dezimalzahl es werden einfach die bei den Halbbyte von FIELD vertauscht Eine solche Vertauschung findet allerdings nur im letzten hier einzigen Byte statt wie man am vierten
259. zw C2 und sind die L ngenfelder der Regi ster 5 und 11 um die Anzahl der gleichen Byte vermindert im Falle von Ungleichheit im Bereich der letzten 5000 Byte enth lt das Register 4 die Adresse des ersten ungleichen Byte und ist das L ngenfeld des Registers 5 um die Anzahl der gleichen Byte vermindert aber das Register 10 enth lt den Wert A C2 15000 und das L ngenfeld von Register 11 den Wert 0 In allen F llen ist das obere Byte von Register 5 und 11 unver ndert d h im Beispiel falle X 00 bzw C _ U3119 J Z125 2 63 CLI 64 Allgemeine Befehle Compare Logical Immediate Funktion Der Befehl CLI vergleicht ein Byte des Hauptspeichers mit dem Direktoperanden 12 Die Anzeige wird gem dem Vergleichsergebnis gesetzt Assemblerformat D11712 TEER Maschinenformat 0 Beschreibung Das mit D1 B1 adressierte Byte des Hauptspeichers wird logisch mit dem Direktoperan den I2 verglichen Anzeige 0 Equal Operandi I2 1 Low Operandi lt I2 2 High Operandi gt I2 3 Nicht verwendet Programmunterbrechungen Art Gewicht Ursachen Adre umsetzungsfehler x 4a8 Lesezugriff auf Operandl unm glich U3119 J Z125 2 Allgemeine Befehle CLI Beispiel FIELDI C AC FIELD1 C A setzt die Anzeige O Equal U3119 J Z125 2 65 CLM 66 Allgemeine Befehle Compare Logical under Mask Funktion Der Befehl CLM vergleicht ausgew hlte Byte eines Mehrzweckregisters logisch m
Download Pdf Manuals
Related Search
Related Contents
Procedimiento para Levantamiento Topográfico PBS archive add on CPM - Manual Part B Sitecom WLA-2001 fulltest3 instrumento multifunción para la verificación de seguridad König HAV-SW100 subwoofer Hans Grohe Starck X 10074001 User's Manual RT-AD 182÷804 Manual do Usuário Philips docking speaker DS9010 Copyright © All rights reserved.
Failed to retrieve file