Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Candidat au Club
    Inscrit en
    décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : décembre 2005
    Messages : 13
    Points : 4
    Points
    4

    Par défaut [68HC11] Calculateur automobile

    Bonjour à tous,

    je voudrais améliorer la gestion du moteur d'une voiture et j'essaye de comprendre le fonctionnement d'un micro controller 68hc11 (MC68HCP11A1VFN).
    Je me suis amusé à desassembler un fichier binaire afin d'essayer de mieux comprendre les "tableaux" ou map contenus dans le bin.

    Par exemple, j'ai une table d'avance allumage en 8A69 (condition normale) et une autre en 8C19 (condition pied à fond).

    Quelqu'un pourrait m'aider à comprendre le code suivant ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    RESERVED:48EE sub_48EE:                               ; CODE XREF: sub_48D8↑p
    RESERVED:48EE                 ldd     #0
    RESERVED:48F1                 std     word_2147
    RESERVED:48F4                 brclr   <byte_A9 $20 loc_4904 ; ' '
    RESERVED:48F8                 ldy     #$8C19
    RESERVED:48FC                 ldd     word_2036
    RESERVED:48FF                 jsr     sub_B2AB
    RESERVED:4902                 bra     loc_4939
    RESERVED:4904 ; ---------------------------------------------------------------------------
    RESERVED:4904
    RESERVED:4904 loc_4904:                               ; CODE XREF: sub_48EE+6&#8593;j
    RESERVED:4904                 ldx     #$8A69
    RESERVED:4907                 tst     byte_20B1
    RESERVED:490A                 bne     loc_490F
    RESERVED:490C                 ldx     #$8B41
    RESERVED:490F
    RESERVED:490F loc_490F:                               ; CODE XREF: sub_48EE+1C&#8593;j
    RESERVED:490F                 ldy     #$213A
    RESERVED:4913                 ldd     word_2034
    RESERVED:4916                 std     0,y
    RESERVED:4919                 ldd     word_2036
    RESERVED:491C                 std     2,y
    RESERVED:491F                 stx     4,y
    RESERVED:4922                 ldaa    #9
    RESERVED:4924                 staa    6,y
    RESERVED:4927                 jsr     sub_B2D6
    RESERVED:492A                 brclr   <byte_A2 2 loc_4939
    RESERVED:492E                 ldab    byte_8A68
    RESERVED:4931                 bpl     loc_4936
    RESERVED:4933                 com     word_2147
    RESERVED:4936
    RESERVED:4936 loc_4936:                               ; CODE XREF: sub_48EE+43&#8593;j
    RESERVED:4936                 stab    word_2147+1
    RESERVED:4939
    RESERVED:4939 loc_4939:                               ; CODE XREF: sub_48EE+14&#8593;j
    RESERVED:4939                                         ; sub_48EE+3C&#8593;j
    RESERVED:4939                 tab
    RESERVED:493A                 clra
    RESERVED:493B                 addd    word_2147
    RESERVED:493E                 std     word_2147
    RESERVED:4941                 rts
    RESERVED:4941 ; End of function sub_48EE

  2. #2
    Expert éminent
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    2 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 2 428
    Points : 7 316
    Points
    7 316

    Par défaut

    Je n'ai pas pu tout comprendre (je n'ai jamais fait de 68hc11).
    Néanmoins ça me semble une fonction de test et remplit un tableau/espace mémoire suivant les conditions/tests faits.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    sub_48EE: ;
     
    	;initialise à 0 la variable $2147
    	ldd #0
    	std $2147
     
     
    	brclr <byte_A9 $20 loc_4904 ; ' '
    	;If
    		;des arguments pour la fonction je suppose
    		ldy #$8C19
    		ldd $2036
    		jsr sub_B2AB ; appel de fonction
    	bra Else
    	; ---------------------------------------------------------------------------
     
    	loc_4904: ; 
     
    		; On gros ici il test pour que X fasse $8A69 ou $8B41 (tout dépend de la valeur de la variable à $20B1)
    		;{
    		ldx #$8A69
    		tst $20B1
    		bne loc_490F
    			ldx #$8B41
    		;}
     
    		loc_490F:
    			; variable $213A = $2034(variable)
    			;{
    			ldy #$213A
    			ldd $2034
    			std 0,y
    			;}
     
    			; variable $213C = $2036(variable)
    			;{
    			ldd $2036
    			std 2,y
    			;}
     
    			; variable $213E = X(voir plus haut)
    			stx 4,y ; 
     
    			; variable $2140 = #9
    			;{
    			ldaa #9
    			staa 6,y
    			;}
     
    			jsr sub_B2D6 ; appel de fonction
     
    			brclr <byte_A2 2 Else
     
     
    			;Test la variable $8A68 et fait soit fait com ou l'envoie a l'adresse $2147+1
    			ldab $8A68
    			bpl Else2
    			;If2
    				com $2147
    			Else2:
    				stab $2147+1
    	Else: 
     
     
    	tab
     
    	;cela fait  variable $2147 += $2147&0xff
    	;{
    	clra
    	addd $2147
    	std  $2147
    	;}
    	rts
    ; End of function sub_48EE

  3. #3
    Candidat au Club
    Inscrit en
    décembre 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : décembre 2005
    Messages : 13
    Points : 4
    Points
    4

    Par défaut

    merci bien, je vais regarder ca.

Discussions similaires

  1. gestion de parc automobile et informatique-fonctionnalités
    Par celesteouattara dans le forum Windows
    Réponses: 1
    Dernier message: 08/11/2006, 11h21
  2. Calculateur de date
    Par Mario Rousson dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 16/10/2006, 13h38
  3. [PHP-JS] Calculateur de pourcent en PHP
    Par tilou dans le forum Syntaxe
    Réponses: 3
    Dernier message: 27/07/2006, 10h29
  4. Microcontrôleurs 68HC11
    Par magniaco dans le forum Autres architectures
    Réponses: 3
    Dernier message: 12/02/2006, 23h27
  5. Cherche contenu pour BDD (ville, automobile..)
    Par nesbla dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 29/03/2005, 21h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo