[LMI] Lire un nombre négatif au clavier [resolu]

Voir le sujet précédent Voir le sujet suivant Aller en bas

[LMI] Lire un nombre négatif au clavier [resolu]

Message  Gustavo le Mar 04 Mar 2008, 17:49

Bonjour,

Je ne vois pas trop comment lire un nombre négatif ou clavier (on en a besoin dans l'ex6 du td2 par exemple).

Il faut se baser sur le code ascii du caractère "-" peut être ? Ensuite toute une série de jumps de de boucles ? Neutral

merci


Dernière édition par Gustavo le Mar 04 Mar 2008, 21:29, édité 1 fois (Raison : sujet résolu)

Gustavo

Nombre de messages : 260
Age : 29
Prénom : Renaud
Statut : étudiant 4SEC
Date d'inscription : 10/01/2008

Revenir en haut Aller en bas

Re: [LMI] Lire un nombre négatif au clavier [resolu]

Message  pbt le Mar 04 Mar 2008, 18:08

Si tu veux lire un nombre négatif, comme tu lis une chaine de caractères, il faut ensuite la décortiquer ... si elle commence par le caractère "-" c'est sans doute un nombre négatif.

De mémoire, je ne sais plus si c'est demandé dans le TD2.

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: [LMI] Lire un nombre négatif au clavier [resolu]

Message  Gustavo le Mar 04 Mar 2008, 21:28

ok merci je vais essayer comme ça alors.

ps: pour l'ex6 du td2 il faut lire deux nombres entiers compris entre -15 et 15....

Gustavo

Nombre de messages : 260
Age : 29
Prénom : Renaud
Statut : étudiant 4SEC
Date d'inscription : 10/01/2008

Revenir en haut Aller en bas

Re: [LMI] Lire un nombre négatif au clavier [resolu]

Message  erka le Jeu 06 Mar 2008, 19:08

me rappel le td4 de l'année passée sous linux ... etait relativement lourd de devoir gerer des positif des negatif .... et brol

erka

Nombre de messages : 495
Age : 29
Prénom : Julian
Statut : ancien reseaux
Localisation : Charleroi
Date d'inscription : 23/10/2006

http://www.vanden.be

Revenir en haut Aller en bas

Re: [LMI] Lire un nombre négatif au clavier [resolu]

Message  NicoM le Jeu 13 Mar 2008, 20:53

Moi j'y arrive pas et je comprend rien. Comment décortiquer une chaine alors que dès que je rentre un caractère, il ne me laisse meme pas en rentrer un deuxième. Que faire? Sad

NicoM

Nombre de messages : 116
Prénom : Nicolas
Statut : étudiant 3ieme Industrielle
Localisation : Bascule
Date d'inscription : 07/12/2007

Revenir en haut Aller en bas

Re: [LMI] Lire un nombre négatif au clavier [resolu]

Message  erka le Ven 14 Mar 2008, 00:07

problème sous dos??? si oui je ne me rappel plus de l'appel systeme mais es-tu sur de demander a lire le nombre de byte voulu et d'avoir réserver un nombre de byte suffisant ??

je ne me rappel plus exactement d'asm dos... linux si , mais si tu postes le bout de code ou tu fais ton interruption pour lire sur stdin j'arriverais ptet a t'aider...

ceci dit je ne sais plus si il existe sous dos une interruption pour lire une chaîne directement... si vous etes encore a faire de l'asm dos, sinon sous linux je pense pouvoir t'aider sans problème.


Sous linux l'appel système est le 3 pour lire, il faut signaler que tu veux lire sur stdin, signaler l'adresse ou tu veux ecrire (qui est préalablement réservée... RESB dans la section .bss), le nombre de byte que tu veux lire et hop c'est parti.

En gros
Code:
     
        mov EAX,num appel systeme
        mov EBX,stdin
        mov ECX,addr
        mov EDX,nbr de byte a lire
        int 0x80

et tu te retrouves avec dans EAX le nombre de byte reelement lu... il ne te reste que à convertir la chaine en nombre

erka

Nombre de messages : 495
Age : 29
Prénom : Julian
Statut : ancien reseaux
Localisation : Charleroi
Date d'inscription : 23/10/2006

http://www.vanden.be

Revenir en haut Aller en bas

Re: [LMI] Lire un nombre négatif au clavier [resolu]

Message  pbt le Ven 14 Mar 2008, 08:31

Pour le TD2, il est sous DOS.

Il y a deux manières de faire, la premire consiste à lire un caractère avec l'interruption qui va bien (int16h,0 devrait convenir) ... et dans relire un deuxième, un troisième et ainsi de suite jusqu'à "plus soif". Il faut donc mettre cette lecture d'un caractère dans une boucle qui s'arrête lorsque tu lis un [Return] par exemple. Chacun des caractères lus sera soit placé dans un buffer soit directement traiter pour former le nombre que tu lis (quelque chose du style, ajouter au nombre précédent multiplié par 10).

La seconde manière de faire consiste à utiliser l'int 21h,0Ah permettant de lire directement une chaine de caractères. Il faut bien lire la doc car cette interruption demande un buffer dans un format particulier. De plus, il faudra traiter cette chaine par la suite .. .avec cette fameuse manip à la "+*10".

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: [LMI] Lire un nombre négatif au clavier [resolu]

Message  erka le Ven 14 Mar 2008, 08:47

mais dans le sujet initial on parle de dos avec tasm... ou asm sous linux avec nasm

erka

Nombre de messages : 495
Age : 29
Prénom : Julian
Statut : ancien reseaux
Localisation : Charleroi
Date d'inscription : 23/10/2006

http://www.vanden.be

Revenir en haut Aller en bas

Re: [LMI] Lire un nombre négatif au clavier [resolu]

Message  Trusty le Ven 14 Mar 2008, 08:49

erka a écrit:mais dans le sujet initial on parle de dos avec tasm... ou asm sous linux avec nasm

il me semble que ce n'est précisé NULL[*] part...

[*]hum hum

Trusty

Nombre de messages : 866
Age : 29
Prénom : Bastien
Statut : old 2010
Localisation : Ath
Date d'inscription : 30/10/2006

Revenir en haut Aller en bas

Re: [LMI] Lire un nombre négatif au clavier [resolu]

Message  pbt le Ven 14 Mar 2008, 09:14

erka a écrit:mais dans le sujet initial on parle de dos avec tasm... ou asm sous linux avec nasm
Je ne sais pas bien et ce n'est pas important car ta réponse est intéressante. L'on sait également que l'orsqu'un étudiant (1) pose une question sur fora il s'imagine que tous les lecteurs sont au courant de son problème (dans ce cas présent, il suppose que tout le mon a lu l'énoncé du TD2-dos de LMI1 ce qui n'est évidement pas le cas).

Pbt

(1) Si je dis 'étudiant", on me rétorquera que tous les étudiants ne font pas pareil. Si je dis "débutant" on me dira que certains débutants --ayant lu smartq-- ne font pas pareil ... donc, je n'ai pas trouvé de vocable adéquat.

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: [LMI] Lire un nombre négatif au clavier [resolu]

Message  erka le Ven 14 Mar 2008, 09:50

J'ai été lire l'énnoncé du td3... et on parle de lecture de nombre maintenant la personne qui a demandé aura j'imagine suffisament d'information pour avancer, si on a bien compris la question.

erka

Nombre de messages : 495
Age : 29
Prénom : Julian
Statut : ancien reseaux
Localisation : Charleroi
Date d'inscription : 23/10/2006

http://www.vanden.be

Revenir en haut Aller en bas

Re: [LMI] Lire un nombre négatif au clavier [resolu]

Message  Contenu sponsorisé Aujourd'hui à 01:12


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum