Test si valeur < 25 en asm
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. #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

  3. #3
    invitef26bdcba

    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.

  4. #4
    invitef86a6203

    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)

  5. A voir en vidéo sur Futura
  6. #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.

  7. #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.

  8. #7
    invitef26bdcba

    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.

  9. #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.

  10. #9
    invitef26bdcba

    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.

  11. #10
    invite092cb13c

    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

  12. #11
    invitef86a6203

    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.

  13. #12
    invitef86a6203

    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 .

  14. #13
    Gérard

    Re : Test si valeur < 25 en asm

    Merci à tous,
    bon WE.

Discussions similaires

  1. Valeur discrète, valeur continue
    Par invite0fadfa80 dans le forum Mathématiques du supérieur
    Réponses: 12
    Dernier message: 19/12/2014, 21h04
  2. .C et .ASM
    Par invitec1317d72 dans le forum Électronique
    Réponses: 4
    Dernier message: 07/05/2008, 14h05
  3. ASM problème en assembleur
    Par invite464a02ec dans le forum Électronique
    Réponses: 8
    Dernier message: 11/06/2007, 11h24
  4. :fs: Passer du .c en .asm
    Par invitee37923cb 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
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...