Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1090 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  [ASSEMBLEUR] Comment tester la valeur d'un bit d'un nombre ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASSEMBLEUR] Comment tester la valeur d'un bit d'un nombre ?

n°129781
_john_doe_
Posté le 23-04-2002 à 15:45:07  profilanswer
 

Je voudrais pouvoir tester un bit d'un nombre, tout en conservant ce nombre...
 
Exemple :
 
0110 1010 0001 0010
comment je teste la valeur du bit n° 1 (en gras) ?

 

[jfdsdjhfuetppo]--Message édité par _john_doe_ le 23-04-2002 à 15:46:12--[/jfdsdjhfuetppo]

mood
Publicité
Posté le 23-04-2002 à 15:45:07  profilanswer
 

n°129791
JPA
Posté le 23-04-2002 à 15:55:28  profilanswer
 

un truc du genre
mov ax,nombre
and ax,0x2
cmp ax,0  (pas sur que cette ligne soit nécessaire)
je etiquette
 
http://www.pageasm.fr.fm/ peut t'aider
A+

 

[jfdsdjhfuetppo]--Message édité par JPA le 23-04-2002 à 15:57:54--[/jfdsdjhfuetppo]

n°129822
Evadream -​jbd-
Posté le 23-04-2002 à 16:23:37  profilanswer
 

Je suis loin de bien maitriser l'assembleur, mais j'ai de vague souvenir du 8051 :D
 
Le principe, énoncé par jpa, est de faire un ET logique entre un nombre binaire et le nombre que dont tu veux garder un bit. TU appliques un "masque". Par exemple :

Code :
  1. 0110 1010 0001 0010
  2. 0000 0000 0000 0010


Tu conserves bien le bit voulu, que tu peux ensuite tester, j'espère avoir bien compris la chose, mais y'a des personnes bien plus compétente qui pourront confirmer ou infirmer ce qui vient d'être dit =]
 
A+

 

[jfdsdjhfuetppo]--Message édité par Evadream -jbd- le 23-04-2002 à 16:25:25--[/jfdsdjhfuetppo]

n°129842
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-04-2002 à 16:46:11  profilanswer
 

Un shift et voir le flag de dépassement, quel valeur il a, car alors il contient le dernier bit qui a été éjecté... Ou alors je mélange tout... ça fait bien longtemps que je n'ai plus fait d'assembleur :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°302566
Valium
Posté le 05-02-2003 à 18:15:54  profilanswer
 

_John_Doe_ a écrit :

Je voudrais pouvoir tester un bit d'un nombre, tout en conservant ce nombre...
 
Exemple :
 
0110 1010 0001 0010
comment je teste la valeur du bit n° 1 (en gras) ?  
 
[jfdsdjhfuetppo]--Message édité par _john_doe_ le 23-04-2002 à 15:46:12--[/jfdsdjhfuetppo]


 
Tu fais un masque comme on appelle ca ...
 
   0110 1010 0001 0010 (6A12h)
 & 0000 0000 0000 0010 (0002h)
-----------------------------
   0000 0000 0000 0010 (0002h)
 
par ex pr toi ca donne
 
mov ax,6A12h
and ax,0002h
cmp ax,0002h
 
si c'est bon, le ZF (Zero Flag) est positionné car pour une operation de compare, le proco fait destination-source ( ou le contraire, chais pu mert )
 
donc si ton 2e bit est bien a 1 et bien l'operation de cmp positionne le ZF et en fonction de ca, tu utilise le jump adequat :)
 
Voila, j'ai confirmé ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  [ASSEMBLEUR] Comment tester la valeur d'un bit d'un nombre ?

 

Sujets relatifs
[JAVA] modifier la valeur d'une donnée dans une hashtable[CGI WinNT] Comment limiter le nombre de connexions simultanées?
Afficher le nombre de visiteurs Online ![PHP] Quel Valeur Est Renvoyé Quand Une Checkbox Est Coché ?
[PHP]Nombre aléatoires (Urgent)[PHP] Testez si une valeur est divisible par 4
[Pascal] nombre limite de valeurs en pointeursmettre valeur d'un Zone de liste dans une cellule ...
[JavaScript] Tester existence "Page.html" avant de l'afficherA tous ceux qui sont fort en assembleur 80x86 , viendez svouplait !!!
Plus de sujets relatifs à : [ASSEMBLEUR] Comment tester la valeur d'un bit d'un nombre ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR