Assembleur PIC

goa_jr Messages postés 2 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 13 avril 2006 - 15 avril 2004 à 13:39
pont Messages postés 198 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 16 novembre 2010 - 24 mai 2009 à 18:33
Bonjour,
Je suis en train de faire un assembleur pour PIC 16F84 et j'ai repéré une chose qui me semble bizarre dans MPLAB : l'instruction qui suit un org 0x004 n'est pas à l'adresse 0x004, mais en 0x008 dans le fichier .hex généré. Je me demande donc si je n'ai pas mal compris comment était généré le fichier .hex pour les PICs.
Je voulais donc savoir si quelqu'un pouvait m'expliquer cette histoire de org ou m'indiquer une doc concernant la création de fichiers .hex pour PICs.

5 réponses

phenojeff Messages postés 87 Date d'inscription jeudi 10 octobre 2002 Statut Membre Dernière intervention 4 avril 2008
17 avril 2004 à 07:17
parceque chaque instrution est codé sur 14bits pour un 16F84
entre org 0x000 et org 0x04 tu as 3 instruction possible max
en asm mais en hex
org 0x00 = address en hex 0x00 & 0x01 pour 16 bits
instruction 1 = 0x02 & 0x03
instruction 2 = 0x04 & 0x05
instruction 3 = 0x06 & 0x07
org 0x04 = 0x08 & 0x09

a++ 8-)
0
sly_online Messages postés 1 Date d'inscription vendredi 12 août 2005 Statut Membre Dernière intervention 12 août 2005
12 août 2005 à 19:36
SLY

moi je demarre carrement apres 20 ans de break
c pas du chinois l'assembleur mais me fo une mise a jour
comment pui je lire une carte TPS ??? sans activer la detection auto ki risk de la bousiller
0
Fuckly94 Messages postés 32 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 12 avril 2006
12 avril 2006 à 21:00
Moi j'ai un peu le même problème.je souhaiterais connétre la structure
des fichiers *.hex générés par MPLAB afin de créer un programateur pour
PIC.sauf je n'est rien compris sur ce fichier,et je n'est pas trouvé la
doc de ce fichier chez microship.

ZO JA KONET
0
goa_jr Messages postés 2 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 13 avril 2006
13 avril 2006 à 18:01
en fait MPLAB ne fait que remplacer les instructions et leurs opérandes (paramètres) par des nombres hexadécimaux. Dans la datasheet des microcontroleurs Microchip, tu trouveras le code hexa associé à chaque instruction.
Chaque ligne de code assembleur (instruction + opérande(s)) est codée sur 4 digits hexa (16 bits, donc 2 adresses).
Je crois que chaque ligne commence par l'adresse de la première instruction de la ligne. Sur une même ligne, les instructions sont situées à des adresses consécutives : si l'adresse au début de la ligne est 0x56, la première instruction de la ligne sera à l'adresse 0x56, la seconde instruction sera à l'adresse 0x58 (instruction sur 16 bits, donc 2 adresses), etc. Si tu as une instruction à l'adresse 0x58 et que la suivante est à l'adresse 0x96, tu dois commencer une nouvelle ligne.
Chaque ligne du fichier .hex est terminée par le checksum de tous les octets de la ligne (même l'adresse je crois).
La première ligne est une ligne d'en-tête et la dernière ligne est aussi spéciale. Je ne sais plus ce qu'elles contiennent.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pont Messages postés 198 Date d'inscription samedi 2 mai 2009 Statut Membre Dernière intervention 16 novembre 2010 1
24 mai 2009 à 18:33
Bonjour goa

<en fait="" mplab="" ne="" que="" remplacer="" les="" instructions="" et="" leurs="" op="" par="" des="" nombres="" hexad="">

L'assembleur fait beaucoup d'autres travaux, comme gérer les étiquettes, les macros, calculer les déplacements, vérifier la syntaxe et générer les messages de correction, il y a beaucoup de difficulté à faire un assembleur moderne qui soit tolérant à la casse, à l'indentation, etc... afficher l'opcode et autres renseignements. ce n'est pas un simple transcodage.
Je ne vois pas l'intérêt de faire ça alors que l'assembleur de Microchip va très bien, et qu'il y a beaucoup à faire à l'utiliser, pour tout un tas d'appareils de sécurité et de surveillance chez soi, ou d'économie de gaz, d'électricité, refaire la programmation de son moteur de voiture avec un PIC pourrait donner naissance à de sérieuses économies de garagiste par exemple, mais faire un assembleur qui ne sera pas à la hauteur, c'est gaspiller son temps. En plus pour un PIC84 largement remplacé par le PIC16F88, qui est débugable, contrairement au PIC16F84...
pont


Il suffit de passer le pont.
</en>
0
Rejoignez-nous