HLASM - BASSM = Branch And Save and Set Mode

De opcode van de BASSM instructie is X'0C'.

Gebruik

  1. Aanroep van een subroutine in een andere Amode.
  2. Verkrijgen van het huidig adres en de Amode uit het PSW.

Argumenten

  1. Terugkeer-adres (in een register).
  2. Routine-adres (in a register).

Functie

  1. De processor plaatst het adres van de byte die volgt op de BASSM instructie (dit is zowel het eerstvolgende sequentiële instructie adres als het verwachtte terugkeer-adres) in het eerste register. De huidige Amode wordt als volgt aan dit adres toegevoegd:
  2. De processor schakelt over naar de Amode die in het routine-adres is gespecificeerd en springt vervolgens naar het routine-adres. De nieuwe Amode wordt als volgt bepaald:
  3. De conditie code wijzigt niet.

Uitzonderingen

  1. Als het terugkeer-adres in register 0 is opgegeven, dan slaat de processor dee eerste aktie over.
  2. Als het routine-adres in register 0 is opgegeven, dan verandert de processor niet van Amode, en zij voert ook geen sprong uit; in plaats daarvan gaat zij verder met de eerstvolgende instructie.

Gerelateerde instructies

  1. BSM is de aanbevolen terugkeer-instructie.
  2. BASR springt naar een routine waarvan bekend is dat die in dezelfde Amode draait als de aanroeper.

Hardware

  1. De BASSM instructie wordt ondersteund sinds de invoering van de 370/XA architectuur.

Opmerkingen

  1. De oude Amode van het PSW bepaalt hoeveel bits gebruikt worden voor het terugkeer-adres. Echter in Amode 24 wordt een 31-bits adres gegenereerd.
  2. De nieuwe Amode van het PSW bepaalt hoeveel bits van het routine-adres gebruikt worden.
  3. Als de nieuwe Amode 64 is, dan wordt het terugkeer-adres even gemaakt (alle instructies moeten op een even adres liggen) door het low-order bit van een 1 in een 0 te veranderen.

Voorbeelden

         YREGS                          * Define register names
         ...
         LOAD  EP=SUBRTN                * Returns dirty address in R0
         LR    R15,R0                   * Copy address + new Amode
         BASSM R14,R15                  * Call subroutine in correct Amode
         ...
         YREGS                          * Define register names
         ...
         BASSM R6,R0                    * Obtain address + current Amode
         ...

Naar het Opcodes overzicht.
Naar de Nederlandse Homepage voor Hlasm.com.
Naat de Algemene Homepage voor Bixoft en Hlasm.com.

Deze site is aangesloten bij WebRing.
Bekijkt u gerust de lijst van mainframe-gerelateerde sites.
Rennende Tyrannosaurus Rex Dino's zijn niet dood. Ze zijn gezond en wel en leven in computer-centra overal om ons heen. Zij spreken in tongen en doen wonderbare magie met computers. Pas op voor de dino! En voor het geval u zit te wachten op het definitieve einde van deze dino's: onthoud dat dino's de wereld 155 miljoen jaren hebben geregeerd!
Dino's en andere anachronismen
[ Aanmelden | Ring Overzicht | Willekeurig | << Vorige | Volgende >> ]
 

Hieronder vindt u het logo van onze sponsor en logos van web-standaarden waaraan deze web-pagina voldoet.