Download 1 Einleitung
Transcript
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 übrigen 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 Anzeige 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ßenden Abspeichern des veränderten Wertes in den Speicher. Diese Lese- und Abspeicherzugriffe auf ein einzelnes Byte geschehen nicht unbedingt sofort hintereinander, wenn ein weiterer Prozessor 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 Name Operation Operanden . XC XC XC . A,B B,A A,B Dieser berühmte Trick tauscht die Hauptspeicherfelder A und B ohne Hilfsfeld aus. Der schöne Algorithmus enthält übrigens eine Ausnahme: wenn sich die beiden Bereiche 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 Mehrzweckregister, weil es keinen X-Befehl gibt, dessen erster Operand ein Hauptspeicherwort adressiert. U3119-J-Z125-2 179