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