Probleme exercice assembleur
nass956
Messages postés
40
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonsoir j ai un exercice a faire en langage assembleur il compile mais ne marche pas
j aurais besoin d aide pour savoir où ca coince.
voici le sujet(voir fichier joint)
et voici mon code

j aurais besoin d aide pour savoir où ca coince.
voici le sujet(voir fichier joint)
et voici mon code
list p=18F4520
include P18F4520.inc
X equ 0x11
R0 equ 10H
R1 equ 11h
R3 equ 14h
mask equ B'00000001'
org 0h
movlw X ;on place la valeur X du registre de travail dans R0
movwf R0
movf R0,w ;le contenue de R0 dans le registre de travail
andlw mask ;et logique entre la valeur X et le masque pour determiner la valeur du bit de poid faible
movwf R3 ;on met le resultat dans l emplacement memoire R3
BZ R3 ;condition pour savoir si le contenue de R3 est pair ou impair
goto PAIRE
BNZ R3
goto IMPAIRE
PAIRE
movlw 0x01
movwf R1
IMPAIRE
movlw 0x02
movwf R1
END

A voir également:
- Assembleur x86 exercices corrigés
- Windows x86 - Forum Windows
- Transmath 3eme corrigé exercices ✓ - Forum Études / Formation High-Tech
- Logiciel x86 / Windows x64 - Forum Windows
- X86 ou x64 ✓ - Forum Windows
- Exercices word 2019 avec corrigés pdf - Forum Word
En plus de ce que j'ai dit ci-dessus, ta variable R3 ne sert à rien et l'instruction BZ R3 ne teste PAS si R3 est nul ou pas. Relis la signification cette instruction.
Le saut a lieu si le flag Z est à 1, c'est à dire si la dernière instruction qui le modifie avait pour résultat zéro. Dans ton cas, cette instruction est le ANDLW : c'est lui qui positionne le Flag Z.
Et tu n'as pas besoin de mettre le BNZ juste après le BZ : si le résultat est zéro, le BZ te fait sauter. Si ce n'est pas zéro, ça continue : il est inutile de refaire un test derrière pour vérifier que ce n'est effectivement pas zéro.