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

MPLABX joli bug
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#1 Message par Guest » sam. 19 mars 2016 20:22

Tient jeremy ou paul , un question ne trotte dans la tête depuis un petit moment, votre compil pro,fait-il de l'optimisation ? car j'ai jamais utilisé ce type d'outil est j'aimerais savoir a quel niveau se fait cette optimisation.
si oui
Par exemple dans le bout de code en C du #1 on voit que l'on répète l'appel au banque, optimisation corrige tel cette anomalie ?
si non
c'est point grave je remet cela dans ma petite tête :lol:

allez bonne soiré et
A+

PS oui, pour les 200% je suis bien d'accord avec toi

MPLABX joli bug
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#2 Message par Jérémy » sam. 19 mars 2016 20:37

J'aimerais faire ton test mais je n'ai aps trop compris ce que je dois faire ?
C'est en faisant des erreurs, que l'on apprend le mieux !!!

MPLABX joli bug
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#3 Message par paulfjujo » sam. 19 mars 2016 20:44

bonsoir,


test mikroC , 18F4685 , optimisation level 4

Code : Tout sélectionner


Optimisation level 4

_main
:
;
test1.c,::         void main()
;
test1.c,::         TRISB=0b11111111;
0x002C    0x0EFF          MOVLW       255
0x002E    0x6E93          MOVWF       TRISB 
;test1.c,::         TRISA=0b00000000;
0x0030    0x6A92          CLRF        TRISA 
;test1.c,::         TRISC=0b11111111;
0x0032    0x0EFF          MOVLW       255
0x0034    0x6E94          MOVWF       TRISC 
;test1.c,::         ADCON1=0b00001111;
0x0036    0x0E0F          MOVLW       15
0x0038    0x6EC1          MOVWF       ADCON1 
;test1.c,10 ::         PORTA=0;
0x003A    0x6A80          CLRF        PORTA 
;test1.c,11 ::         RBPU_bit=0;
0x003C    0x9EF1          BCF         INTCON2
;test1.c,14 ::         }
L_end_main:
0x003E    0xD7FF          BRA         $+0



nota: idem en optimisation level 0..
nota: il n'y a que 7 bits dans l'init ADCON=0b0000111;
ton test , avec quel MCU ?
Aide toi, le ciel ou FantasPic t'aidera

MPLABX joli bug
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#4 Message par Jérémy » sam. 19 mars 2016 20:58

L'optimisation va jusqu’à level 5 ?

Quel est le plus optimisé 5 ou 0 ? dehors!!
C'est en faisant des erreurs, que l'on apprend le mieux !!!

MPLABX joli bug
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#5 Message par Guest » dim. 20 mars 2016 09:35

merci pour vos réponses

c’était avec un 16F et la notion de banques
nota: il n'y a que 7 bits dans l'init ADCON=0b0000111;


j'ai bien mis 7 pour ADCON


Tient toujours sous 16F ou autre....

Code : Tout sélectionner

            while(~PORTB);


cela donne quoi optimisé, merci..
A+

MPLABX joli bug
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#6 Message par Guest » dim. 20 mars 2016 19:24

Bonsoir

J'ai continué mon investigation, il n'y a pas de soucis avec les 18F et les DSP 16bits

Passé une bonne soirée et

A+

MPLABX joli bug
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#7 Message par Guest » lun. 21 mars 2016 16:52

bon j'ai aussi trouvé pour

Code : Tout sélectionner

while(~PORTB);

plus rapide et bien plus court et de plus est en C :lol:

Pas très convaincu par votre optimisation ;)

A+

MPLABX joli bug
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#8 Message par Guest » ven. 21 oct. 2016 15:25

Bonjour
Dans la liste on vas ajouter STATUS (pour la littérature en C, il passe sans problème sous MPASM) qu'il faut écrire en minuscule
Capture.png
en ligne 21 STATUS est considéré comme une variable. En 23 bien comme un registre .Cela passe très bien, si vous avez l'habitude d’écrire en minuscule. Perso c'est tout en majuscule, je sais.... j'ai gardé cela d'un temps ....

A+

PS dans le fichier entête STATUS est en majuscule oui :wink:
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

MPLABX joli bug
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#9 Message par paulfjujo » ven. 21 oct. 2016 17:04

bonjour,


Bien qu'on soit dans la rubrique ASM
je recommande fortement de valider "case sensitive" avec le compilo MikroC
sous peine de déboires (du vécu) .
ou le refus d'usage de certaines variable
ex:
char *p; refusé si case sensitive non activé
serait donc déja utilisé par le compilo ?
et alors on cherche .... une erreur inexistante ..pour rien
et aussi eviter des noms de variable comme data ! ou val

Cela est un peu contraignant, mais la programmation c'est avant tout, de la rigueur !

MikroC_case_sensitive.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

MPLABX joli bug
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#10 Message par Guest » ven. 21 oct. 2016 17:55

NON ce n'est pas de ASM, c'est particulier, pour chaque compilateur C en l'occurrence ici ,c'est pour le XC8 sous MPLABX .mais il est vrai, la plus parts des BUGS que je rapporte ici, c'est pour du mixe C/ASM


Retourner vers « Langage ASM »

Qui est en ligne

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