Assembleur 8086 pair ou impair ?

Fermé
lewir Messages postés 5 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 26 avril 2012 - 21 mars 2012 à 19:58
 Villich - 18 nov. 2015 à 14:32
Bonjour,

onjour,

je dois écrire un programme qui dit si un nombre pair ou impair dans le langages assembleur 8086. voici ce que j'ai fait mais sa ne fonctionne pas, quelqu'un voit l'erreur ou a une meilleure solution ?


ORG 100h
   MOV AL, 00000111b   ; AL = 7
   OR  AL, 0          ; flags
   JNP label1
   MOV Ah, 01
   
   msg : db 'nombre pair'
   JMP exit
label1:
   msg2 : db 'nombre impair'
   
exit:
   RET            
   endp


Merci !!

A voir également:

1 réponse

nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
21 mars 2012 à 20:49
Le saut conditionnel "jnp" ne teste pas le bit le plus faible, mais indique si le nombre total de bit à 1 est pair ou impair...
Pour tester la parité de la valeur, l'idéal est d'utiliser "test" et jnz :
   ORG 100h
   MOV  AL, 00000111b   ; AL = 7 ; AH = 0
   Test AL,01           ; Teste le bit le plus faible
   JNZ  label1          ; saut si le bit est à 1
   
   msg : db 'nombre pair'
   JMP exit
label1:
   msg2 : db 'nombre impair'
   
exit:
   RET            
   endp
2
Bonjour, je voulais juste savoir si , au lieu d'entrer le chiffre en binaire et qu'on le laissait tel quel, le programme fonctionnerait toujours ?

Merci.
0