Salut à tous, je suis en cours par correspondance au CNED, à plus ou moins deux mois de l'exam, et un devoir me pose quelques problèmes. La moitié du devoir porte sur un programme que je ne suis pas capable de comprendre. En voici le listing:
Partant de là, je pense comprendre certains morceaux, comme les "clr" pour clear, ou les mov qui signifieraient qu'il faut par exemple pour mov A,B, donner à B la valeur de A (ou l'inverse je suis pas bien sûr). Du reste, je ne comprend absolument rien.Code:******** Déclaration des constantes ******** Long_max EQU 200 ;Définition de la taille de Long_max Long_min EQU 58 ;Définition de la taille de Long_min ********************* Déclaration des adresses *********** C_etat EQU 37H Parasite EQU 36H C_bits EQU 35H Parite EQU 34H Data_Diseq EQU 33H Com_Diseq EQU 32H Adrr_Diseq EQU 31H Framing EQU 30H ************** Déclaration des bits **************** Bit_code BIT 00H ;Définition de l'adresse de sauvegarde du bit ***************** Routine partielle d'acquisition du message DISEQC généré par le démodulateur ************** FS31: push ACC clr PSW.4 setb PSW.3 clr IE.0 clr PSW.5 mov Parasite,#20H mov C_bits, #08H mov Parite,#00H mov Data_Diseq,#00H mov Com_Diseq,#00H mov Adrr_Diseq,#00H mov Framing,#00H mov C_etat,#00H mov R0,#Framing *********************Début de la détection **************** FS32: djnz Parasite,FS32 mov Parasite,#01H inc C_etat mov C,P3.2 jnc DEBUT mov Parasite,#20H FS33: clr C mov A,C_etat subb A,#long_min jc COURT clr Bit_code jmp FS34 COURT: setb Bit_code FS34; mov C,PSW.5 jc BIT_PARITE mov A,@R0 mov C,Bit_code mov ACC.7,C rl A mov @R0,A djnz C_bits,#08H jmp FS36 BIT_PARITE: clr PSW.5 mov A,Parite mov C,Bit_code mov ACC.7,C rl A mov Parite,A FS36: inc C_etat clr C mov A,#Long_max subb A,C_etat jc END_DISEQ mov C,P3.2 jc FS36 mov C_etat,#00H jmp FS32 **************** Fin de la détection ****************** END_DISEQ: pop ACC clr PSW.3 ret
Néanmoins, le devoir me pose 3 questions relatives à ce programme. La première est de déterminer la valeur de Long_max en fin de programme. La seconde est de dessiner l'algorigramme du programme qu'on me donne, et la dernière de montrer comment le programme réalise la tâche "attente d'un front descendant" en se basant sur le programme et les deux autres questions.
Le problème étant que... J'ai beau tourner et retourner mes cours, j'ai pas la moindre trace de ce genre de choses, et rien que le langage utilisé me reste inconnu. Si je comprend bien, Long_max récupère la valeur de A, mais je n'ai aucune information à ce sujet, à aucun endroit. Donc voila, si quelqu'un pouvait me venir en aide, au moins pour m'expliquer comment tout fonctionne, pas forcemment pour répondre à tout hein, je saurais me débrouiller, à partir du moment où je comprendrais comment tout fonctionne.
Voila, merci d'avance.
Cordialement, Shadoow
-----