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 ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

DATAS dans un programme
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#1 Message par F6FCO » dim. 31 déc. 2017 15:40

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 ?
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

DATAS dans un programme
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#2 Message par Temps-x » dim. 31 déc. 2017 15:58

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.

Code : Tout sélectionner



       dt 
"Bon Réveillon F6FCO, ainsi que tout le forum"

       
END



A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

DATAS dans un programme
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#3 Message par F6FCO » dim. 31 déc. 2017 16:13

Temps-x a écrit :Je comprends pas la question

Code : 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 ?
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

DATAS dans un programme
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#4 Message par paulfjujo » dim. 31 déc. 2017 16:18

bonjour


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
Aide toi, le ciel ou FantasPic t'aidera

DATAS dans un programme
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#5 Message par Temps-x » dim. 31 déc. 2017 16:30

Re
é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 oops

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 :furieux:
suffit de taper ce que tu recherches.

hlpMPASMAsm.zip



A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

DATAS dans un programme
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#6 Message par F6FCO » dim. 31 déc. 2017 17:51

Merci à tous les deux pour vos réponses, je vais explorer çà :wink: 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 :-D content le FCO!

Bon réveillon et meilleurs vœux à tous.
JC
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

DATAS dans un programme
JJE
Passioné
Passioné
Messages : 399
Âge : 83
Enregistré en : novembre 2017
Localisation : Picardie

#7 Message par JJE » ven. 2 févr. 2018 16:12

quelques lignes de code pour ne réponse un peu tardive sur la mise en oeuvre d'une directive dt:

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 :-D
Les 3 dernières lignes sont une sécurité dont j'ai parlé dans un post récent.

Cordialement
Cordialement

JJE

C'est pas parcequ'on n'a rien à dire qu'il faut fermer sa G....e

DATAS dans un programme
mazertoc
Passioné
Passioné
Messages : 201
Enregistré en : juillet 2015
Localisation : Auvernha

#8 Message par mazertoc » ven. 2 févr. 2018 19:42

Si ça peut aider :
http://microchipdeveloper.com/

Et aussi dans le dossier qui contient MPLABX on trouve presque tout -> farfouiller dedans !

DATAS dans un programme
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#9 Message par F6FCO » sam. 3 févr. 2018 11:47

Merci pour toutes ces infos, je vais potasser tout çà.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 43 invités