/*************************************************************************************************************************************/
/* */
/* 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.