cs_krater
Messages postés22Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention17 juin 2006
-
30 mai 2004 à 12:49
sirozz
Messages postés28Date d'inscriptionmardi 27 avril 2004StatutMembreDernière intervention13 avril 2008
-
4 août 2004 à 14:19
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
cs_Champignon
Messages postés2Date d'inscriptionsamedi 31 juillet 2004StatutMembreDernière intervention31 juillet 2004 31 juil. 2004 à 04:03
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
sirozz
Messages postés28Date d'inscriptionmardi 27 avril 2004StatutMembreDernière intervention13 avril 2008 4 août 2004 à 14:19
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). @+