(Courriels de diversion: <transi@ranches-forestiers.com> <constitutionnellement@souhaiterez-instruira.com> <grisonnante@reinstallerai-haschich.com> <offrirez@entamerais-localiserons.com> <avoisinerai@meteorites-contrerez.com> <demarquez@rajeuniront-surmenais.com> <portail@barbet-charriee.com> <balisera@humilier-saussaies.com> <urbaniserez@creche-intimions.com> <liquidais@encriers-peseras.com> )
"imcp.ba" wrote: QUE FAIT L'INSTRUCTIOBN A=0; EN C SUR UN M68000 ???? le compilateur C essai d'evaluer les constantes et donc aussi de genere un code le plus court possible si on ecrits A = 12 +3 * 5 ; (il genere alors A= 27); soit MOVEy.b valeur_imediate27 dansqqchose si on ecrir A = 3 ; il genere alor un move quick MOVEQy_valeur_immediate dansqqchose l'instruction MOVEQ est plus courte car la valeur immediate passe sur 3 ou 4 bits dans le code meme de l'instruction ! Mieux si on ecris la commande A=0; en c apres optimisation M68000 donne l'instructiion assembleur CLR.x A // clear qq chose encore plus cour que le MOVEQ !! A etant ce que l'on veut !!!! ..... manque de chance cette instruction est un cas particulier de la famille d'instruction Clear bit_list constitue par un micro programme interne de la forme Lire A ; A and ~masque_de_bit ; //pour elliminer les bit voulus Ecrire A; CLR A est declinee sous la forme Clear all bit ce qui donne LIRE A ; A and zero ; ecrier A; ce qui corresspond en C a : A; A=0; la cible est mise a zero; apres une lecture superflus !!! Dans le cadre d'une programmation normale ca passe presque mais des que A correspond a un registre de controle de periferique ca peut posser probleme !!!!! par exemple sur un serialisateur l'adresse du registre de serialisation a deux fonctions en ecriture : c'est lenvois d'un caractere au serialisateur (IT) en lecture : c'est la valeur du dernier caractere recus en serialsation (IT) si il n'y a plus de caractere a transmettre on peut accuper le temps en envoyant des caractere de SYNCRO (plutot que de desamrmer l' it tous de suite !) lescaractere de SYNCRO sont ellimine a la reception (mode asyncrone syncronise) typiquenet SYNCRO est la caractere NULL on programme donc une instruction de la forme #define SYNCRO 0 SERIALREGISTER = SYNCRO ; // pas de transmisssion a faire pour le moment D'autre part la lecture de chaque caractere recus se fait par une suite d'instructions (dans le temps des it) derniercaractererecu = SERIALREGISTER; .... et c'est la le gag quand l'emmeteur n'a rien a dire le programme d'it emissioin fait un CLR serialregister //(apres optimisation diabolique) le claer M6800 fait en interne une lecture supperflus qui jette le caractere recus que devriais lire IT reception autrement dit pas de reception correcte si l'emmeteur n'a rien a dire !!! pas evidant a trouver ! la soultion est de declarer une variable de nom "zero" de prefeence externe de l'intialiser qq part avec un A -= A par exemple et de l'utiliser ensuite sous la forme SERIALISATEUR=zero; C'est un classique de la programmation C M68000 !!! Evidament le nom de la VARIABLE est libre ! et l'on peut lire des code C du style : satan=FALSE; ..... SERIALISTEUR=satan; //pour tuer le tandem satanique compilateur M68000 //effet garantis chez les lecteur du code du service qualitee !!!!!! ce bug de microprogrammation est corrige dans la puce du M68040 !!!! comme quoi il n'est pas necessaire d'ecrire des code C compliquer sybilins et exoterique pour avoir des erreurs !!!! A=0 ; //ca plante dejat ; > -- > Veuillez n'utiliser que le format txt, dans les couriels ! > pas de fichiers attache ou mime ! merci ! > Si vous voulez me joindre personellement, placer le tag [PERSO], > dans le titre de votre message. MERCI ! > > Je vous remeci de soutenir le logiciel libre ! > Cf: http://www.fsf.org/philosophy/no-word-attachments.fr.html > > A.B. : imcp.ba@free.fr FREE LINUX SYSTEM> http://imcp.ba.free.fr http://www.culte.org > Membre du Club des Utilisateurs de Linux de Toulouse et des environs. > Pc : ortho-graphe connait pas !!! fonetic oui !!! > > -------------------------------------------------------------------- > Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/> -- Veuillez n'utiliser que le format txt, dans les couriels ! pas de fichiers attache ou mime ! merci ! Si vous voulez me joindre personellement, placer le tag [PERSO], dans le titre de votre message. MERCI ! Je vous remeci de soutenir le logiciel libre ! Cf: http://www.fsf.org/philosophy/no-word-attachments.fr.html A.B. : imcp.ba@free.fr FREE LINUX SYSTEM http://imcp.ba.free.fr http://www.culte.org Membre du Club des Utilisateurs de Linux de Toulouse et des environs. Pc : ortho-graphe connait pas !!! fonetic oui !!! -------------------------------------------------------------------- Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>