Instruction div (Divide)

Objectif

Divise le contenu d'un registre à des fins générales concaténé avec le registre MQ par le contenu d'un registre à des fins générales et stocke le résultat dans un registre à des fins générales.

Remarque: The Div instruction is supported only in the POWER® family architecture.

Syntaxe

Bits Valeur
0-5 31
6 à 10 RT
11-15 RA
16-20 RB
21 expérience opérationnelle
22-30 331
31 Rc
Famille POWER 
div RT, RA, RB
Div. RT, RA, RB
Divo RT, RA, RB
Divo. RT, RA, RB

Description

L'instruction Div concatène le contenu du registre à des fins générales (GPR) RA et le contenu du registre de quotas multiples (MQ), divise le résultat par le contenu de GPR RBet stocke le résultat dans la cible GPR RT. Le reste a le même signe que le dividende, sauf qu'un quotient zéro ou un solde nul est toujours positif. Les résultats obéissent à l'équation:


dividend = (divisor x quotient) + remainder

Où adividendEst l'original (RA) | | (MQ),divisorEst l'original (RB),quotientEst la version finale (RT), etremainderEst la version finale (MQ).

Pour le cas de-2**31 P -1, le registre MQ est défini sur 0 et-2**31Est placé dans GPR RT. Pour tous les autres dépassements, le contenu de MQ, la cible GPR RTet la zone de registre de condition 0 (si l'enregistrement Bit (Rc) est 1) n'est pas défini.

L'instruction Div comporte quatre formes de syntaxe. Chaque formulaire de syntaxe a un effet différent sur la zone de registre de conditions 0 et le registre des exceptions à point fixe.

Article Descriptif
Formulaire de syntaxe Dépassen Exception (OE) Point fixe Registre des exceptions Enregistrement Bit (Rc) Condition Zone de registre 0
div 0 Néant 0 Néant
Div. 0 Néant 1 LT,GT, EQ, SO
Divo 1 ALORS, OV 0 Néant
Divo. 1 ALORS, OV 1 LT,GT, EQ, SO

Les quatre formes de syntaxe de l'instruction Div n'affectent jamais le report (CA) dans le registre des exceptions à point fixe. Si le formulaire de syntaxe définit l'exception de dépassement de débit (OE) à 1, l'instruction affecte les bits Overflow (SO) et Overflow (OV) du récapitulatif dans le registre des exceptions de point fixe. Si le formulaire de syntaxe définit le bit d'enregistrement (Rc) à 1, l'instruction affecte les bits Inférieur à (LT) zéro, Supérieur à (GT) zéro, égal à zéro (EQ) et Bits de dépassement de récapitulatif (SO) dans la zone du registre de conditions 0.

Paramètres

Article Descriptif
RT Indique le registre général cible dans lequel le résultat de l'opération est stocké.
RA Indique le registre d'utilisation générale source pour l'opération.
RB Indique le registre d'utilisation générale source pour l'opération.

Exemples

  1. Le code suivant divise le contenu de GPR 4, concaténé avec le registre MQ , par le contenu de GPR 6 et stocke le résultat dans GPR 4:
    
    # Assume the MQ Register contains 0x0000 0001.
    # Assume GPR 4 contains 0x0000 0000.
    # Assume GPR 6 contains 0x0000 0002.
    div 4,4,6
    # GPR 4 now contains 0x0000 0000.
    # The MQ Register now contains 0x0000 0001.
    
  2. Le code suivant divise le contenu de GPR 4, concaténé avec le registre MQ , par le contenu de GPR 6, stocke le résultat dans GPR 4 et définit la zone de registre de conditions 0 pour refléter le résultat de l'opération:
    
    # Assume the MQ Register contains 0x0000 0002.
    # Assume GPR 4 contains 0x0000 0000.
    # Assume GPR 6 contains 0x0000 0002.
    div. 4,4,6
    # GPR 4 now contains 0x0000 0001.
    # MQ Register contains 0x0000 0000.
    
  3. Le code suivant divise le contenu de GPR 4, concaténé avec le registre MQ , par le contenu de GPR 6, place le résultat dans GPR 4, et définit les bits de dépassement et de dépassement du récapitulatif dans le registre d'exception à point fixe pour refléter le résultat de l'opération:
    
    # Assume GPR 4 contains 0x0000 0001.
    # Assume GPR 6 contains 0x0000 0000.
    # Assume the MQ Register contains 0x0000 0000.
    divo 4,4,6
    # GPR 4 now contains an undefined quantity.
    # The MQ Register is undefined.
    
  4. Le code suivant divise le contenu de GPR 4, concaténé avec le registre MQ , par le contenu de GPR 6, place le résultat dans GPR 4, et définit les bits de dépassement et de dépassement de récapitulatif dans le registre d'exception à point fixe et la zone d'enregistrement de condition 0 pour refléter le résultat de l'opération:
    
    # Assume GPR 4 contains 0x-1.
    # Assume GPR 6 contains 0x2.
    # Assume the MQ Register contains 0xFFFFFFFF.
    divo. 4,4,6
    # GPR 4 now contains 0x0000 0000.
    # The MQ Register contains 0x-1.