/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T E S T   D E S   O P E R A T I O N S   S U R   B I T  :                                                                   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xtKg/bit.01$K' :                                                                                               */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 1987??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N T E R F A C E   ' listG '  :                                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        :Debut_listG:                                                                                                              */
/*        :Fin_listG:                                                                                                                */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D I R E C T I V E S   S P E C I F I Q U E S   D E   C O M P I L A T I O N  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
@define   PRAGMA_CPP_____MODULE_NON_DERIVABLE

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F I C H I E R S   D ' I N C L U D E S  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  INCLUDES_MINI

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   PRINT(x)                                                                                                                      \
                    Bblock                                                                                                              \
                    CAL2(Prin2("attendu = %08X   calcule = %08X\n",x,masque));                                                          \
                    Test(IFNE(x,masque))                                                                                                \
                         Bblock                                                                                                         \
                         PRINT_ERREUR("   le calcul est faux");                                                                         \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        T E S T   D E S   O P E R A T I O N S   S U R   B I T  :                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(Int,INIT(masque,UNDEF));
     /*..............................................................................................................................*/
     GET_ARGUMENTS_(nombre_d_arguments
                   ,BLOC(VIDE;)
                    );

     CLIR(masque);

     PRINT(0x00000000);
     EGAL(masque,SBIT(masque,1));
     PRINT(0x40000000);
     EGAL(masque,SBIT(masque,3));
     PRINT(0x50000000);
     EGAL(masque,SBIT(masque,4));
     PRINT(0x58000000);
     EGAL(masque,SBIT(masque,27));
     PRINT(0x58000010);
     EGAL(masque,SBIT(masque,30));
     PRINT(0x58000012);
     EGAL(masque,IBIT(masque,31));
     PRINT(0x58000013);
     EGAL(masque,RBIT(masque,27));
     PRINT(0x58000003);

     Test(PRESENT(TBIT(masque,31)))
          Bblock
          CAL2(Prin0("le bit 31 est bien a 1\n"));
          Eblock
     ATes
          Bblock
          CAL2(Prin0("non, le bit 31 est a 1\n"));
          Eblock
     ETes

     Test(PAS_PRESENT(TBIT(masque,27)))
          Bblock
          CAL2(Prin0("le bit 27 est bien a 0\n"));
          Eblock
     ATes
          Bblock
          CAL2(Prin0("non, le bit 27 est a 0\n"));
          Eblock
     ETes

     EGAL(masque,CBIT(masque,12,TBIT(masque,31)));
     PRINT(0x58080003);
     EGAL(masque,CBIT(masque,12,TBIT(masque,27)));
     PRINT(0x58000003);
     EGAL(masque,SCRS(masque,2));
     PRINT(0xD6000000);
     EGAL(masque,SARS(masque,8));
     PRINT(0xFFD60000);
     EGAL(masque,SLLS(masque,4));
     PRINT(0xFD600000);
     EGAL(masque,SLRS(masque,8));
     PRINT(0x00FD6000);
     EGAL(masque,OUIN(masque,MOCD));
     PRINT(0x00FD60FF);
     EGAL(masque,OUEX(masque,MMOT));
     PRINT(0xFF029F00);
     EGAL(masque,ETLO(masque,OUEX(MMOT,SALS(MOCD,8))));
     PRINT(0xFF020000);
     EGAL(masque,SCLS(masque,4));
     PRINT(0xF020000F);

     RETU_Commande;
     Eblock
ECommande



Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.