Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Test si valeur < 25 en asm



  1. #1
    Gérard

    Test si valeur < 25 en asm


    ------

    Bonjour,

    Pour une routine d'IRQ que je souhaite écrire en asm, je suis en train de me mélanger les pinceaux.
    Mon problème :
    comment tester si variable < à 25 et faire un saut ?
    j'ai écris :
    Code:
    movlw 25
    subwf		variable,w
    après je ne sais pas comment tester le bit C et quoi faire avec le résultat.
    Ce soir je n'ai plus envie de réfléchir et demande de l'aide.
    Merci d'avance aux pros de l'asm.



    -----

  2. Publicité
  3. 📣 Nouveau projet éditorial de Futura
    🔥🧠 Le Mag Futura est lancé, découvrez notre 1er magazine papier

    Une belle revue de plus de 200 pages et 4 dossiers scientifiques pour tout comprendre à la science qui fera le futur. Nous avons besoin de vous 🙏 pour nous aider à le lancer...

    👉 Je découvre le projet

    Quatre questions à explorer en 2022 :
    → Quels mystères nous cache encore la Lune 🌙 ?
    → Pourra-t-on bientôt tout guérir grâce aux gènes 👩‍⚕️?
    → Comment nourrir le monde sans le détruire 🌍 ?
    → L’intelligence artificielle peut-elle devenir vraiment intelligente 🤖 ?
  4. #2
    behemerre

    Re : Test si valeur < 25 en asm

    Salut,

    Je connais un pro de l'ASM et fervant défenseur des PIC sur le forum, attends Gérard, il t'aidera certainement !

    Du moins je vais regarder ta demande, je re-poste d'ici quelques minutes

    PS : rien de tel qu'un language évolué sur PIC !

    a+
    L'éxpérience de chacun est le trésor de tous

  5. #3
    DavidDB

    Re : Test si valeur < 25 en asm

    Salut,

    Le BASIC rend les neurones fainéantes...

    Code:
    	movlw	D'25'
    	subwf	variable, W
    	btfsc	STATUS, C
    	goto	sup_ou_egal_a_25
    	goto	moins_de_25

    David.

  6. #4
    freepicbasic

    Re : Test si valeur < 25 en asm

    contrairement à toute bonne logique le carry fonctionne à l'envers dans le cas des soustractions sur les microchip car on additionne le complément à 2.
    Donc il faudrait inverser les 2 lignes de goto. Et corriger le >= qui devient <=
    Carry clear signifie retenu donc plus que 25.

    On a donc;
    Code:
    	movlw	D'25'
    	subwf	variable, W
    	btfsc	STATUS, C
    	goto	moins_ou_egal_à_25
            goto	sup_à_25
    lire le datasheet dans STATUS register sur le C (/BORROW au sujet du carry)
    A+, pat

  7. A voir en vidéo sur Futura
  8. #5
    Gérard

    Re : Test si valeur < 25 en asm

    Citation Envoyé par DavidDB Voir le message
    Salut,

    Le BASIC rend les neurones fainéants...

    ........

    David.
    Bonjour,
    C'est cru, mais pas entièrement faux.

  9. #6
    Gérard

    Re : Test si valeur < 25 en asm

    1 Merci à David et à Pat

    2 Qui a raison ?

    Merci de vous occuper de mon petit cas.

  10. Publicité
  11. #7
    DavidDB

    Re : Test si valeur < 25 en asm

    Salut,

    Citation Envoyé par Gérard Voir le message
    Bonjour,
    C'est cru, mais pas entièrement faux.
    Allez, rajoute "Le BASIC rend les neurones fainéantes)", comme cela c'est moins cru...

    Sinon, j'ai raison...

    Freepicbasic à oublié que la soustraction se fait "à l'envers" avec l'instruction SUBWF.

    David.

  12. #8
    Gérard

    Re : Test si valeur < 25 en asm

    Bonjour,
    J'ai relu BigOnOff (Part1_R24) page 64 et voilà ma réflexion :
    on fait (f)-(w)-->(f) par subwf
    si résultat > 0 --> Z = 0, C = 1
    si résultat < 0 --> Z = 0, C = 0
    si résultat = 0 --> Z = 1, C = 1

    Tout ça pour montrer à David que mes neurones fonctionnent

    Merci à ceux qui m'ont aidé.
    Dernière modification par Gérard ; 20/06/2008 à 16h40.

  13. #9
    DavidDB

    Re : Test si valeur < 25 en asm

    Voila l'inverse au cas où (c'est le même principe, mais on inverse la soustraction)...

    Inférieure ou égale à (<=) :

    Code:
    	movf	variables, W
    	sublw	D'25'
    	btfsc	STATUS, C
    	goto	inf_ou_egal
    	goto	superieure
    David.

  14. #10
    gedonet

    Re : Test si valeur < 25 en asm

    Bonjour
    Une page pour qui est une grande aide quand on a quelques doute sur la syntaxe de l'assembleur: http://fribotte.free.fr/bdtech/picnul/PicFicheAide.html et on constate que David a raison.
    Gilles

  15. #11
    freepicbasic

    Re : Test si valeur < 25 en asm

    Citation Envoyé par gedonet Voir le message
    Bonjour
    Une page pour qui est une grande aide quand on a quelques doute sur la syntaxe de l'assembleur: http://fribotte.free.fr/bdtech/picnul/PicFicheAide.html et on constate que David a raison.
    Gilles
    Je site
    Après les instructions SUBWF ou SUBLW, vous pouvez tester :
    si Res < 0 goto Label BTFSS STATUS,C
    GOTO Label
    On va à Label si CY = 0 , il y a dépassement ,c'est ce que je dis .
    ça confirme ce que je dis
    Attention au sens C et S et ou on va ...

    Sinon se référer au cours BigOnOff , il en parle.
    A+, pat

  16. #12
    freepicbasic

    Re : Test si valeur < 25 en asm

    Freepicbasic à oublié que la soustraction se fait "à l'envers" avec l'instruction SUBWF.
    Ok tu as raison , je me suis encore fais avoir ça fonctionne à l'envers.
    Les Anglais roule à gauche qu'on se le rappelle... LOL

    on soustrait W de 25
    Si W est plus grand on à une une retenue soit CY=0
    Post#9 OK !


    désolé d'avoir perturbé , ça permet tout de même de de faire une révision .
    A+, pat

  17. Publicité
  18. #13
    Gérard

    Re : Test si valeur < 25 en asm

    Merci à tous,
    bon WE.

Discussions similaires

  1. Valeur discrète, valeur continue
    Par YABON dans le forum Mathématiques du supérieur
    Réponses: 12
    Dernier message: 19/12/2014, 21h04
  2. .C et .ASM
    Par bartimeus dans le forum Électronique
    Réponses: 4
    Dernier message: 07/05/2008, 14h05
  3. ASM problème en assembleur
    Par vavoum dans le forum Électronique
    Réponses: 8
    Dernier message: 11/06/2007, 11h24
  4. :fs: Passer du .c en .asm
    Par Bretzel dans le forum Logiciel - Software - Open Source
    Réponses: 18
    Dernier message: 08/02/2006, 22h09
  5. Asm-> Hexadecimal
    Par acx01b dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 24/01/2005, 21h13
Découvrez nos comparatifs produits sur l'informatique et les technologies.