IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Autres architectures Assembleur Discussion :

[Hitachi SH7058] Désassemblage


Sujet :

Autres architectures Assembleur

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [Hitachi SH7058] Désassemblage
    Yup ,

    Je suis en plein " reverse " d'un programme dans le but de comprendre son fonctionnement . ( Programme de l'ECU d'une voiture , dans le but d'avoir une gestion moteur personnalisée )

    J'ai donc mon entry point en 12974 , je désassemble et la ... c'est le drame !



    Première ligne : mettre la valeur R2 dans ???
    Que signifie : @(h'1B8,pc) ?
    Quelle est la signification d'un @ devant une valeur ?
    Comment interpréter cette partie : ; [00012B30] = sub_4989C

    La subroutine en question :



    Quelle différence entre un mov.l , un mov.s et un mov.b ?
    Qu'elle est la signification d'un f devant un mov ?

    D'avance merci .

    Aurélien

    Edit : Quel imbécile , j'avais oublié le datasheet :

    http://www.datasheetsite.com/extpdf....1%2FSH7058.pdf

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Bonjour, je ne connais pas du tout l'Hitachi SH7058, mais on peut tirer quelques conjectures par rapport à l'existant.

    Citation Envoyé par Aurélien_78 Voir le message
    Première ligne : mettre la valeur R2 dans ???
    Que signifie : @(h'1B8,pc) ?
    Il s'agit sans doute d'un offset : PC + 1B8h en hexadécimal. Ce type de mode est souvent utilisé pour générer du code relogeable (ce qui est presque « automatique » sur Intel, par exemple). Ça se fait beaucoup sur Motorola, dont ce CPU doit être inspiré. Même chose pour la notation à virgule.

    Quelle est la signification d'un @ devant une valeur ?
    Probablement que l'expression qui le suit doit être interprétée comme une adresse mémoire.

    Comment interpréter cette partie : ; [00012B30] = sub_4989C
    Le point-virgule qui la précède doit sûrement débuter un commentaire. Elle ne fait donc pas partie du code, mais « sub_4989C » doit probablement être le nom d'une variable ou d'un registre quelquonque, dont le nom a été attribué automatiquement par le compilateur.

    Quelle différence entre un mov.l , un mov.s et un mov.b ?
    Probablement mov.long, mov.short et mov.byte, soit 32, 16 et 8 bits.

    Quelle est la signification d'un f devant un mov ?
    Ça, ça peut être n'importe quoi. Sur Intel, il s'agit des floating instructions, gérées par le coprocesseur.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Je te remercie , je vais essayer d'avancer avec ça .

    Ce que je comprend le moins c'est la subroutine .

    Merci pour ta précieuse aide .

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Citation Envoyé par Aurélien_78 Voir le message
    Ce que je comprend le moins c'est la subroutine.
    À noter que je ne devais pas être très réveillé hier soir. Tes « xxx = sub_xxxx » sont tous affectés à tes JSR. Il semble qu'il s'agisse là en fait des étiquettes des points d'entrée de tous tes sous-programmes.

    « Subroutine », c'est un sous-programme. Les JSR (Jump To Subroutine) sont l'équivalent Motorola et autres des CALL sur Intel : ça appelle un sous-programme depuis n'importe quel endroit, en sauvegardant l'adresse de retour dans la pile. L'instruction RTS (Return From Subroutine) est le pendant de cette facilité. Ça dépile l'adresse et y retourne.

    Mais bon, il nous faudrait le jeu d'instruction complet pour avoir une idée plus précise de ce que le compilateur essayait de faire.

  5. #5
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup marc , j'avance !

    C'est assez long , il y a beaucoup de code ...

Discussions similaires

  1. [HDD firmware] décompilation ou désassemblage possible ?
    Par XecTech dans le forum Composants
    Réponses: 3
    Dernier message: 26/01/2007, 16h12
  2. Librairie de désassemblage
    Par elekis dans le forum Assembleur
    Réponses: 1
    Dernier message: 26/10/2006, 09h40
  3. Réponses: 14
    Dernier message: 14/02/2005, 03h36
  4. Protection désassemblage : planter WDASM
    Par Didier Derain dans le forum x86 32-bits / 64-bits
    Réponses: 10
    Dernier message: 10/08/2004, 18h13
  5. Désassemblage à la main 16 bits / 32 bits
    Par le mage tophinus dans le forum Assembleur
    Réponses: 12
    Dernier message: 19/04/2003, 01h55

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