cs_Nasman
Messages postés202Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention29 septembre 20083 10 oct. 2005 à 10:27
Je suppose que tu veux saisir des données au clavier. Pour l'affichage
les valeurs devront être converties en chaines ascii. Dans ce cas il
faut prévoir:
- la saisie de caractères au clavier (ou via un autre périphérique)
- la conversion en nombres
- le traitement de ce nombre (ce que tu veux en faire)
- la conversion du résultat en chaine
- la sortie de la chaine (écran ou autre périphérique)
Selon le programme et la plateforme, tu pourras (ou non) utiliser des fonction bios, dos
et les instructions in et out.
Quant à and, cette fonction effectue un et logique entre deux octets
(word ou dword) de la façon suivante: le bit est mis à un si et
seulement si les deux bits des deux octets valent 1.
Le résultat est un octet.
exemple : al = 3Eh (00111110b)
pour découper cet octet en deux valeurs 3 et E tu peux faire:
pour 3
diviser par 16d, soit 10h ou 10000b en décalant de 4 bits
shr al,4 donne 03h (00000011b)
pour E
effectuer un and avec 0Fh (00001111b)
and al,0Fh
00111110 al
00001111 0Fh
and 00001110 soit 0Eh
L'autre utilisation de and est sous la forme
and al,al
donne toujours al mais recalcule les flags (flag zero, signe, parité ...)
il est généralement suivi d'un branchement.
Son interrêt par rapport à cmp réside dans la taille de l'instruction (2 octets)