Déassembleur microcontroleur Intel D8748
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 42

Déassembleur microcontroleur Intel D8748



  1. #1
    invited4321620

    Déassembleur microcontroleur Intel D8748


    ------

    Bonjour à tous,

    je suis à la recherche d'un désassembleur pour un programme de microcontroleur Intel D8748 (famille MCS-48 ou 8048).
    Il s'agit d'un programme au format hex que j'ai extrait à l'aide d'un programmateur universel. J'aimerai le convertir en assembleur pour pouvoir l'interpréter et le
    tester avec un émulateur.

    J'ai essayé plusieurs désassembleurs gratuits trouvés sur internet. Mais le code obtenu comporte à chaque fois de très nombreuses erreurs.
    J'ai vu qu'il existe également des logiciels professionnels payants, mais leur prix est très élevés et il est difficile de savoir si leur conversion sera sans erreurs.

    Merci d'avance pour votre aide,
    Fabrice

    -----

  2. #2
    vincent66

    Re : Déassembleur microcontroleur Intel D8748

    Bonjour
    Deux possibilités :
    - Le programmeur qui a écrit le logiciel du micro est un manche et les erreurs viennent de lui...
    - Plus probable le 8748 est protégé en lecture et tout le code lu est bidon...
    Vincent
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  3. #3
    DAUDET78

    Re : Déassembleur microcontroleur Intel D8748

    Un dessassembleur ..... dessassemble ! et il le fait comme il peut.
    Rarement, il ne recrée un jeu d'étiquette et il donne des adresses absolues en hexa.
    Si il y a des zones de data, il ne le sait pas et il donne sa traduction en assembleur ...... ce qui donne des trucs curieux !

    Bref un code assembleur donné par un dessassembleur demande un gros travail d'édition (et une bonne connaissance du langage) pour pour être réassemblé et redonner le code machine d'origine.

    Ensuite, si on réinserre des instructions , on risque, si il y a des Jumps à des adresses absolues ou relatives, d'avoir un code qui plante (il faut remplacer le Jump 0x1234 par un Jump Toto et placer Toto à l'adresse 0x1234 .... gros travail d'édition !)

    Bref, le retro-engenierring , c'est du temps à passer
    J'aime pas le Grec

  4. #4
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    Merci Vincent pour ton aide,
    en fait il s'agit d'un programme utilisé pour des cartes d'entrées/Sorties utilisées depuis au moins 30 ans et sur plusieurs centaines d'exemplaire. Donc je pense pas que le programme puisse comporter tant d'erreurs.

    Comment savoir si le 8748 est protégé en lecture ? (je suis vraiment débutant dans ce domaine)
    J'ai effectué plusieurs lecture avec le programmateur, et je récupère toujours le même contenu pour le fichier hex. Le logiciel du programmateur permet également d'effectuer une comparaison entre le programme se trouvant dans le 8748 et celui présent sur le PC, et là encore pas de problème.
    Par contre c'est quand je désassemble que ça se gâte. Déjà le code obtenu change en fonction du désassembleur utilisé, et peut même être très différents d'un désassembleur à l'autre. Ensuite si je veux l'utiliser dans un émulateur de 8748, des erreurs sont indiquées. Pareil si je veux réassembler le code, des erreurs sont indiquées et le fichier hex que j'obtiens n'a aucun point commun avec le fichier hex de départ, même pour les premières lignes (donc les lignes se trouvant avant les erreurs)

  5. A voir en vidéo sur Futura
  6. #5
    DAUDET78

    Re : Déassembleur microcontroleur Intel D8748

    Citation Envoyé par corde57 Voir le message
    Comment savoir si le 8748 est protégé en lecture ?
    si tu arrives à lire autre chose que des FF FF FF ou 00 00 , il ne doit pas être protégé
    et là encore pas de problème.
    OK
    Maintenant, ce code, sans y toucher, tu le rentres dans ton émulateur 8748 et là, il doit tourner sans erreur à moins que ton fichier HEX ne soit pas compatible . il y a des fichiers en binaire pur, en format Intel, en format Motorola
    J'aime pas le Grec

  7. #6
    DAUDET78

    Re : Déassembleur microcontroleur Intel D8748

    Regarde si ton fichier ressemble (avec notepad) à ça : http://www.datelec.fr/uniprog/format%20intel.htm
    J'aime pas le Grec

  8. #7
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    Merci Daudet,
    Le code comporte effectivement autre chose que des FF ou 00, voilà par exemple les deux premières lignes :

    :10000000040900000000004415B83 FB000E80BBC34
    :10001000FF345723C03A144527625 5FC39541C3429

    Pour l'émulteur, il s'agit d'un émulateur pour MCU de la famille 8048, le 8748 en fait partie, on peut d'ailleurs le sélectionner dans les options.
    Par contre j'ai pas vu qu'on pouvait émuler directement à partir du fichier hex. J'arrive qu'à lui donner de l'assembleur, à moins que j'ai louper quelque chose... je vais quand même revérifier ça...

  9. #8
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    Très instructif ton lien Daudet, est-ce que ce format était déjà valable pour les 8748 ? d'après ce que je lis je n'aurai que des lignes de données dans mon fichier hex.
    Je peux d'ailleurs afficher une copie, il n'est pas très long :

    :10 0000 00 040900000000004415B83FB000E80B BC 34
    :10 0010 00 FF345723C03A1445276255FC39541C 34 29
    :10 0020 00 00541C000065FC17C63707AA346F14 7B 08
    :10 0030 00 FDC63DBCFF3444D5BC00C50413D51C FC 33
    :10 0040 00 C5F2330413BB00BA001479BF0FEF4D FD A6
    :10 0050 00 5662C672125ABD0104723272BD0034 44 37
    :10 0060 00 0472C66E126804723272BD020472BD 01 5F
    :10 0070 00 3453149F14C4E64983FA39FB777753 1F 2E
    :10 0080 00 0327A8FB53030389B398959B8DF047 77 0B
    :10 0090 00 775303AD83F0048FF00491F0470491 FB 94
    :10 00A0 00 530303A5B3B5B9BEA9BF3FFD47E7E7 AD 0D
    :10 00B0 00 F05F4DA083BFFC04B0BFF3FD04ADBF CF 24
    :10 00C0 00 FD4704AF1BFA03019757AA83000000 00 05
    :10 00D0 00 000000000000000000000000000000 00 20
    :10 00E0 00 000000000000000000000000000000 00 10
    :10 00F0 00 000000000000000000000000000000 00 00
    :10 0100 00 B81DB922F0C60D17960EA007A183F1 03 02
    :10 0110 00 FCF63DF007A01768A8F0AA39346F14 7B ED
    :10 0120 00 562ABD00149F14C42400BD02FCDA96 32 86
    :10 0130 00 BCFF149FF117A169A9FAA12400B1FF B8 6F
    :10 0140 00 1DB00083B922F1525017A169A9FAA1 83 09
    :10 0150 00 B1FF83B91D2446BB00BA001479FD03 FD 2D
    :10 0160 00 C668BD004668BD02149F14C4E65B83 FA EE
    :10 0170 00 530FAEFA47530FAB97E7E76BE76EAB 83 CE
    :10 0180 00 BF002688EF8224A45400BD08B90097 26 3A
    :10 0190 00 A6A7192E672E5404ED8EF96736A2F6 A4 91
    :10 01A0 00 A783F6A1978324935410B909BD002E 23 89
    :10 01B0 00 803A54082E672EE9CBFD672380E6C9 23 D9
    :10 01C0 00 40003A540C23403A8324C22380E6D4 23 CF
    :10 01D0 00 401D24B10024D2BF00BE0CBD22EDDD 54 71
    :10 01E0 00 1536E8EFD997A783EEDB9783FED528 68 0D
    :10 01F0 00 28C583D5FBC5830000000000000000 00 77
    :10 0200 00 BF2B4412BF1A4412BF174412BF1E44 12 20
    :10 0210 00 BF88EF1283161883D51BC583D5BB00 C5 D5
    :10 0220 00 543DE63C23403A54A5BF00EF2B7400 B9 7F
    :10 0230 00 22B10023C03AFA17962004098334D7 F6 76
    :10 0240 00 4F265D16474441D51BFBC5B25B4441 16 A2
    :10 0250 00 53443D541534F3B25B443D97833488 E6 F0
    :10 0260 00 3DFEC641D5A8C523F254A1964F3480 E6 81
    :10 0270 00 3D34EC0854A1964F3480E63D34ECAA 34 6A
    :10 0280 00 80E63D34ECB919A13480E63D34EC23 F3 2B
    :10 0290 00 54A1963D3480E63DD5F8C56E963D97 A7 AE
    :10 02A0 00 83376E1783B919F103ABB3B1BABEC8 D2 A5
    :10 02B0 00 D7FA17C6B73444BA0083BCFF44B5FA 2C 4A
    :10 02C0 00 17C6B507ACAA44B5346F147BBD0314 9F A1
    :10 02D0 00 44B5B822B0FF83FA17C6B9346F147B BD 9A
    :10 02E0 00 01149F44B500000000000000000000 00 61
    :10 02F0 00 000000000000000000000000000000 00 FE
    :10 0300 00 23E2D5A8C534AA0834ED34A8FA17C6 42 AA
    :10 0310 00 B922F1C64217C62F0707A11769A9F1 AA 8A
    :10 0320 00 34ED34A8346F147BFD34ED34A86410 23 0D
    :10 0330 00 E734ED34A8B827F034ED34A818F8D2 42 E9
    :10 0340 00 643723E334ED34A8D5F8C5371734A8 83 D0
    :10 0350 00 000000000000000000000000000000 00 9D
    :10 0360 00 000000000000000000000000000000 00 8D
    :10 0370 00 000000000000000000000000000000 00 7D
    :10 0380 00 000000000000000000000000000000 00 6D
    :10 0390 00 000000000000000000000000000000 00 5D
    :10 03A0 00 000000000000000000000000000000 00 4D
    :10 03B0 00 000000000000000000000000000000 00 3D
    :10 03C0 00 000000000000000000000000000000 00 2D
    :10 03D0 00 000000000000000000000000000000 00 1D
    :10 03E0 00 000000000000000000000000000000 00 0D
    :10 03F0 00 000000000000000000000000000000 00 FD
    :00 0000 01 FF

    (j'ai ajouté les espaces pour la lisibilité)

    Je n'ai peut-être que récupérer les données du 8748 et pas le code ?

  10. #9
    DAUDET78

    Re : Déassembleur microcontroleur Intel D8748

    Citation Envoyé par corde57 Voir le message
    :10 0000 00 04 09 00 00 00 00 00 44 15 B8 3F B0 00 E8 0B BC 34
    :10 0010 00 FF 34 57 23 C0 3A 14 45 27 62 55 FC 39 54 1C 34 29
    C'est bien un fichier HEX Intel
    J'arrive qu'à lui donner de l'assembleur, à moins que j'ai louper quelque chose... je vais quand même revérifier ça...
    Le fichier HEX Intel ... C'est de l'assembleur !
    Code:
    0000 : 04 09 00 00 00 00 00 44 15 B8 3F B0 00 E8 0B BC
    0010 : FF 34 57 23 C0 3A 14 45 27 62 55 FC 39 54 1C 34
    Regarde dans les options de chargement d'un fichier dans l'émulateur si il n'y a pas des options (HEX, BIN etc)
    Dernière modification par DAUDET78 ; 03/09/2011 à 16h46.
    J'aime pas le Grec

  11. #10
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    Pour l'émulateur, je voulais dire qu'il ne prend que les fichiers asm. Le logiciel permet d'ouvrir un .hex mais pour pouvoir le charger dans le microcontroleur en branchant un programmateur sur le port parallèle, ça ne concerne apparemment pas la fonction émulateur.

    Est-il normal que je n'ai que des 00 dans la troisième colonne du fichier hex ?

  12. #11
    DAUDET78

    Re : Déassembleur microcontroleur Intel D8748

    Citation Envoyé par corde57 Voir le message
    Pour l'émulateur, je voulais dire qu'il ne prend que les fichiers asm.
    tu es sûr sûr ?
    Est-il normal que je n'ai que des 00 dans la troisième colonne du fichier hex ?
    Regarde la signification de cet octet dans le lien que je t'ai donné

    Si ton émulateur que prend que du .ASM , dessassemble ! mais vérifie que ton logiciel accepte du fichier .HEX Intel
    J'aime pas le Grec

  13. #12
    DAUDET78

    Re : Déassembleur microcontroleur Intel D8748

    Citation Envoyé par corde57 Voir le message
    T est-ce que ce format était déjà valable pour les 8748 ?
    Oui
    d'après ce que je lis je n'aurai que des lignes de données dans mon fichier hex.
    Données = Code ou constante
    Je n'ai peut-être que récupérer les données du 8748 et pas le code ?
    Non, mais le programme n'est pas très long
    J'aime pas le Grec

  14. #13
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    C'est justement le fichier issu du désassemblage que j'ai entré dans l'émulateur. Je devrais plutôt dire les fichiers, comme j'ai testé plusieurs désassembleurs qui me donnent des résultats très différents. Pourtant le 8748 faisait à chaque fois partie de la liste des microcontroleurs supportés.

    Et c'est là que je reçois des messages d'erreurs de la part du simulateur. Je vois également que le simulateur recrée un fichier .hex, mais celui-ci n'a aucun point commun avec le fichier hex originale, ni pour le contenu, ni pour la taille du fichier.

  15. #14
    DAUDET78

    Re : Déassembleur microcontroleur Intel D8748

    Il faut retraiter, avec un éditeur, le fichier issu du déssamblage pour enlever les scories:
    As tu un fichier ASM quelconque qui rentre bien dans ton émulateur ?
    As tu un fichier de dessassemblage ?

    Tu renommes le Toto.asm en Toto.asm.TXT pour les mettre en pièce jointe
    J'aime pas le Grec

  16. #15
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    Qu'appelles-tu les scories ?

    En pièce jointe j'ai envoyé le fichier asm donné en exemple avec le simulateur (CounterInit.asm)
    Le deuxième fichier (CounterDasm.asm) est le désassemblage du fichier hex issu de CounterInit.asm
    Fichiers attachés Fichiers attachés

  17. #16
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    Le deuxième fichier
    Fichiers attachés Fichiers attachés

  18. #17
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    oups petite erreur sur le 2e fichier,
    voilà le fichier désassemblé
    Fichiers attachés Fichiers attachés

  19. #18
    DAUDET78

    Re : Déassembleur microcontroleur Intel D8748

    La première instruction 04 09, c'est un JMP ??? mais je n'ai pas trouvé sur le WEB le jeu d'instruction du 8748 .... tu peut me le trouver ?
    J'aime pas le Grec

  20. #19
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    Le fichier est trop grand pour le mettre en pièce jointe. Voilà le lien vers le manuel de la famille MCS-48 dont fait partie le 8748 : http://www.sharpmz.org/download/8048.pdf

    Les instructions sont décrites à partir de la page 60.

  21. #20
    DAUDET78

    Re : Déassembleur microcontroleur Intel D8748

    Putaing ... j'avais pas trouvé !
    Page 4, 18
    JMP within 2K block
    04 09 c'est JMP adresse 09

    Si ton dessambleur ne te donne pas ça ...... c'est que ce n'est pas un déssassembleur 8048 ou qu'il lit mal le fichier
    J'aime pas le Grec

  22. #21
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    ca fait peur ! aucun des desassembleurs que j'ai testés ne me donnait ça !
    Comment peuvent-ils être autant à côté de la plaque ? J'ai peut-être fait une erreur de manipulation ? mais bon y a pas grand chose à faire à part donner le nom du fichier et l'offset, parfois également la taille du fichier...

  23. #22
    DAUDET78

    Re : Déassembleur microcontroleur Intel D8748

    Tu utilises quoi comme dessassembleur ? un lien au zazard ?
    Ce qui est certain, c'est que ton premier code machine est 04 09 c'est JMP adresse 09
    J'aime pas le Grec

  24. #23
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    J'ai principalement utilisé celui-ci : http://myweb.tiscali.co.uk/pclare/DASMx/

    il faut le démarrer depuis le DOS

  25. #24
    DAUDET78

    Re : Déassembleur microcontroleur Intel D8748

    Tu en as pas un autre moins chiant et qui démarre sous Windows ?
    J'aime pas le Grec

  26. #25
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    Désolé, je n'en ai pas trouvé pour Windows
    Celui que j'ai indiqué est celui que je trouve le moins chiant

    j'en ai 3 autres, je suis entrain de chercher les liens, j'arrive pas à remettre la main dessus pour le moment...

  27. #26
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    En voilà un : http://asm48.sourceforge.net/
    En voilà un autre : http://freespace.virgin.net/roger.spriggs/digital.htm (faut cliquer sur le 7e paquet cadeau...)

  28. #27
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    Citation Envoyé par DAUDET78 Voir le message
    04 09 c'est JMP adresse 09
    Si ton dessambleur ne te donne pas ça ...... c'est que ce n'est pas un déssassembleur 8048 ou qu'il lit mal le fichier
    La nuit porte conseil... le désassembleur lisait effectivement mal le fichier comme tu me le disais, et pour cause : il n'attendait pas un fichier.hex mais un fichier.bin... !

    Du coup je viens de ressortir tout le matériel programmateur etc (à 4h du matin...) et réextrait le code du microcontroleur en l'enregistrant cette fois au format bin, j'ai retesté le désassemblage avec le 1er programme que je t'avais indiqué...
    et cette fois j'ai un code qui commence par JMP adresse 09 !!!

    Je te dis déjà un grand merci DAUDET sans toi j'aurais certainement déjà abandonné !

    J'ai encore besoin de tes lumières expertes : j'obtiens un code légèrement différent si l'option threading du désassembleur est activée ou pas. Et je n'ai pas retesté le code dans l'émulateur donc il risque d'y avoir encore des surprises. Mais d'abord j'ai besoin de dormir...

    Je te mets en pièces jointes ce que j'obtiens comme code avec et sans l'option threading
    Fichiers attachés Fichiers attachés

  29. #28
    DAUDET78

    Re : Déassembleur microcontroleur Intel D8748

    Tes deux fichiers sont identiques
    Avec l'option threading, il me semble que le dessassembleur convertie en data les zones de code qui ne sont pas utilisées (par exemple les 00 après le RET qui suit l'étiquette L00C4

    Il est pas trop con ton dessassembleur !
    J'aime pas le Grec

  30. #29
    invited4321620

    Re : Déassembleur microcontroleur Intel D8748

    Effectivement ça a l'air pas mal
    J'ai passé les 2 fichiers asm dans l'assembleur. Cette fois-ci plus d'erreurs d'indiquées.
    Dans les 2 cas j'obtiens un fichier hex strictement identique au fichier hex récupéré avec le programmateur.

    Donc ca s'annonce plutôt bien.

    Effectivement l'option threading traduit les séries de 00 par des db 000H... au lieu de mettre des NOP. (A quoi correspondent ces séries de 00 ? ça a l'air d'être des lignes vides ?)
    Mais pas que, certaines lignes de code sont également remplacées. Par exemple après le jump qui suit L007B, ce sont une vingtaine de lignes de code (jusqu'à L009F) qui sont remplacées par des db 098H, 095H... ça m'a l'air moins bon dans ces cas là non ?

  31. #30
    DAUDET78

    Re : Déassembleur microcontroleur Intel D8748

    Non, il n'arrive pas à faire un programme machine cohérent !
    Après le JMP, il insère un
    Code:
    	db	09BH
    C'est donc une zone de données

    A quoi correspondent ces séries de 00
    Je n'en sais rien .... il faut analyser le code !
    J'aime pas le Grec

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Processeurs Intel
    Par invitee3fac6d2 dans le forum Matériel - Hardware
    Réponses: 1
    Dernier message: 26/03/2011, 14h28
  2. Amd ou intel?
    Par skarab2201 dans le forum Matériel - Hardware
    Réponses: 26
    Dernier message: 06/12/2009, 14h52
  3. AMD ou Intel ???
    Par invite240ac937 dans le forum Matériel - Hardware
    Réponses: 8
    Dernier message: 23/12/2007, 11h27
  4. driver intel
    Par inviteb271042d dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 01/01/2007, 23h45
  5. Turion / Intel
    Par invitebba6b05d dans le forum Matériel - Hardware
    Réponses: 6
    Dernier message: 26/11/2006, 11h11
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...