Affichage et saisie

anonyme_man_in_this_world Messages postés 161 Date d'inscription samedi 25 juin 2005 Statut Membre Dernière intervention 1 août 2006 - 9 oct. 2005 à 23:25
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 - 10 oct. 2005 à 10:27
salut !

doit je creer des fonctions pour capter des valeurs et des nombres ?puis je

afficher une valeur(pas caractere) grace a une interruption Bios ou avec des in

et out ?enfin,a quoi sert l'instruction and ?

superbe merçi d'avance

@++

1 réponse

cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
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)

cmp eax, 0x00000000 (5 octets)

jz étiquette



and eax,eax (2 octets)

jz étiquette
0
Rejoignez-nous