Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : mazertoc
DATAS dans un programme
- F6FCO
Expert- Messages : 1417
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Bonjour,
Quand je programmais en assembleur 386 (il y a très très longtemps) je me rappelle qu'on plaçait des datas après la directive END, On pouvait ensuite lire ces datas pour faire par exemple des sprites à afficher sur l'écran.
C'était une suite de mots de 8bits prédéfinis par le programmeur.
Ce qui correspond aux tableaux des langages évolués qu'on peut aller lire bit à bit.
Il y a-t'il une façon de faire çà en assembleur ?
Quand je programmais en assembleur 386 (il y a très très longtemps) je me rappelle qu'on plaçait des datas après la directive END, On pouvait ensuite lire ces datas pour faire par exemple des sprites à afficher sur l'écran.
C'était une suite de mots de 8bits prédéfinis par le programmeur.
Ce qui correspond aux tableaux des langages évolués qu'on peut aller lire bit à bit.
Il y a-t'il une façon de faire çà en assembleur ?
DATAS dans un programme
Bonsoir F6FCO, et tout le forum,
Je comprends pas la question, mais en assembleur PIC ça donne ceci, on peu le mettre au début ou à la fin.
A+
Je comprends pas la question, mais en assembleur PIC ça donne ceci, on peu le mettre au début ou à la fin.
Code : Tout sélectionner
dt "Bon Réveillon F6FCO, ainsi que tout le forum"
END
A+
DATAS dans un programme
- F6FCO
Expert- Messages : 1417
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Temps-x a écrit :Je comprends pas la questionCode : Tout sélectionner
dt "Bon Réveillon F6FCO, ainsi que tout le forum"
END
A+
Merci c'est exactement la réponse que je cherchais. Peut-tu me dire ou je peux trouver des infos sur cette directive 'dt' ? Le tableau se place dans la zone variables ?
DATAS dans un programme
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour
on peut aussi stocker des messages dans l'eeprom du PIC
exemple 16F628
de explication dans
MPLAB IDE 8.92
Help
Directives
on peut aussi stocker des messages dans l'eeprom du PIC
exemple 16F628
Code : Tout sélectionner
; Text Strings (stored in data EEPROM)
; EEPROM de 128 bytes seulement
ORG 0x2100
ovr de " Over Range ",0
Unit1 de " nF",0
Unit2 de " pF",0
Unit3 de " mH",0
Unit4 de " uH",0
Cintro de " C = ",0
Lintro de " L = ",0
Calibr de " Calibrating ",0
cal_p de 0x27,0x10 ; Initial value = 10000
Schema de "LCmetre_16F628 ",0
Version de " Version 170119 ",0
Remove_CAL_SW de "Remov CAL Switch",0
Max_Eeprom equ $
END
de explication dans
MPLAB IDE 8.92
Help
Directives
DATAS dans un programme
Re
A l'époque de mon apprentissage sur les Pics, j'ai envoyé un mail à Monsieur Bigonoff pour lui demandé s'il pouvait faire un tutoriel sur
les directives.
Il m'a répondu qu'il y songerait, mais pas pour le moment car il n'avait pas le temps, et je le comprends, car il à déjà fait beaucoup pour nous.
Alors je vais te dire que je sais mon servir, mais là a te les expliquer
Voici un petit résumer
db : Utilisé pour une écriture dans la mémoire programme
dw : Utilisé pour une écriture dans la mémoire programme
de : Permet d'écrire dans la mémoire EEPROM lors de la gravure du circuit
dt : Génère une série d'instructions RETLW suivies par expr
Voici le fichier d'aide de MPLAB IDE 8.92 tous est inscrit dedans, mais en anglais
suffit de taper ce que tu recherches.
A+
écrit par F6FCO :
Peut-tu me dire ou je peux trouver des infos sur cette directive 'dt'
A l'époque de mon apprentissage sur les Pics, j'ai envoyé un mail à Monsieur Bigonoff pour lui demandé s'il pouvait faire un tutoriel sur
les directives.
Il m'a répondu qu'il y songerait, mais pas pour le moment car il n'avait pas le temps, et je le comprends, car il à déjà fait beaucoup pour nous.
Alors je vais te dire que je sais mon servir, mais là a te les expliquer
Voici un petit résumer
db : Utilisé pour une écriture dans la mémoire programme
dw : Utilisé pour une écriture dans la mémoire programme
de : Permet d'écrire dans la mémoire EEPROM lors de la gravure du circuit
dt : Génère une série d'instructions RETLW suivies par expr
Voici le fichier d'aide de MPLAB IDE 8.92 tous est inscrit dedans, mais en anglais
suffit de taper ce que tu recherches.
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
DATAS dans un programme
- F6FCO
Expert- Messages : 1417
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Merci à tous les deux pour vos réponses, je vais explorer çà Mais la langue du chat qui expire ce n'est trop pas ma tasse de thé, vais bien voir si je m'en sors.
Je viens de réaliser mon premier programme, un comptage en binaire sur la matrice 8x8. YEAHHHHH !! Ca ne sert strictement à rien mais c'est mon premier content le FCO!
Bon réveillon et meilleurs vœux à tous.
JC
Je viens de réaliser mon premier programme, un comptage en binaire sur la matrice 8x8. YEAHHHHH !! Ca ne sert strictement à rien mais c'est mon premier content le FCO!
Bon réveillon et meilleurs vœux à tous.
JC
DATAS dans un programme
quelques lignes de code pour ne réponse un peu tardive sur la mise en oeuvre d'une directive dt:
le segment où on exploite le premier message
le segment qui exploite le deuxième message
ici, la définition des messages
dt est traduit par l'assembleur en une succétion de RETLW, un par caractère ou valeur écrite. C'est quand même plus sumple et plus lisible que d'écrire tous ces RETLW
Les 3 dernières lignes sont une sécurité dont j'ai parlé dans un post récent.
Cordialement
Code : Tout sélectionner
;*********************************************************************
; DECLARATIONS DE VARIABLES *
;*********************************************************************
CBLOCK 0x020 ; Début de la zone des variables
; sauvegardes pour l'IT
w_temp : 1 ; W
status_temp : 1 ; STATUS
offsetmess : 1 ; pointeur sur le caractère à afficher
; dans la table des messages
cmpt : 1 ; un compteur
ENDC ; Fin de la zone
le segment où on exploite le premier message
clrf offsetmess
Phase0
; afficher un message
; Point d'entrée testé : AV_WriteData
movf offsetmess,w
call messages
incf offsetmess,f
iorlw 0 ; tester la nullité du caractère lu
btfsc STATUS, Z
goto Phase1
; ici, tu fais ce que du veux avec l'octet récupéré dans WREG par le call message précédent
goto Phase0
Phase1
le segment qui exploite le deuxième message
movlw message2-message1
movwf offsetmess
Phase3_1
; ici, il y a quelques lignes de code qui n'ont rien à voir avzc ce problème
movf offsetmess,w
call messages
incf offsetmess,f
iorlw 0 ; tester la nullité du caractère lu
btfsc STATUS, Z
goto Phase3_2
; ici, tu fais ce que du veux avec l'octet récupéré dans WREG par le call message précédent
goto Phase3_1
Phase3_2
ici, la définition des messages
Code : Tout sélectionner
;
*********************************************************************
; Les messages utilisé
;*********************************************************************
messages
addwf PCL,f
message1 dt " Hello Word ",0
message2 dt "Un message plus long que l'écran"
finmessages dt 0
if high(message1) != high(finmessages)
messg "La table message franchit une frontière de bloc."
endif
dt est traduit par l'assembleur en une succétion de RETLW, un par caractère ou valeur écrite. C'est quand même plus sumple et plus lisible que d'écrire tous ces RETLW
Les 3 dernières lignes sont une sécurité dont j'ai parlé dans un post récent.
Cordialement
DATAS dans un programme
Si ça peut aider :
http://microchipdeveloper.com/
Et aussi dans le dossier qui contient MPLABX on trouve presque tout -> farfouiller dedans !
http://microchipdeveloper.com/
Et aussi dans le dossier qui contient MPLABX on trouve presque tout -> farfouiller dedans !
DATAS dans un programme
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 90 invités