Codage de printf et scanf

Signaler
Messages postés
22
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
17 juin 2006
-
Messages postés
28
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
13 avril 2008
-
bonjour a tous,
je suis en train de réaliser un compilateur et je suis un peu bloquer par la lecture d'une chaine.

en effet, mon compilo ne gere que les entiers, et je voudrais faire une fonction de ce style : lire(n); ou n et un entier(dans un premier temps, on n'aura qu'un seul parametre...
cependant, le probleme et de bien recevoirun entier dans n...
j'avais penser a quelque chose utilisant :
l'interruption dos 21h en utilisant la fonction 0Ah
seulement, il ne faupas accepter autre chose qu'un entier...

donc est ce possible, ou y a t'il une meilleur solution

sinon, pour le printf, je pense avoir une structure comme ca :

message db "la chaine reconue par le compilo",'$'
push AX
push DX
mov AH,09h
mov DX,offset message
int 21h
pop DX
pop AX

est ce une solution correct?

voila je pense que c'est tout...

merci bien
A voir également:

3 réponses

Messages postés
2
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
31 juillet 2004

mov ah,01h
int 16h
Le code ascii est dans al
Donc tu vérifies si c'est soit un signe soit un digit
J'espère que ça répond à ta question
Messages postés
2
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
31 juillet 2004

Euh je suis pas sûr à 100% que ce soit la fonction 01h
C'est peut être la 10h
L'une des deux se contente de scruter la queue du clavier alors que l'autre attend la pression d'une touche
Messages postés
28
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
13 avril 2008

Slt, je pense que si tu veux tester la présence d'un entier, il faut vérifier chaque caratère de la chaîne 'n' (lire(n)) en faisant une soustraction ex: code ascii de "5" - 30h = 05h et tu as alors la valeur numérique du caractère. Tu vérifies aussi la présence des caratères "," et "." . Je sais pas si ya plus simple (je débute en asm). @+

In tartiflette we trust !