TD4, "rev"

Page 2 sur 2 Précédent  1, 2

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

Re: TD4, "rev"

Message  Wark le Mar 29 Avr 2008, 22:38

Dans mon groupe, nous n'avons même pas entendu parler de toutes ces fonctions du c.

Je dois dire que cela est assez complexe, la pile est une notion qui m'échappe un peu avec les ebp et esp. :// Il faut que je m'y mette.

Wark

Nombre de messages : 682
Age : 29
Prénom : Cédric
Statut : Diplômé 2010
Localisation : Braine l'alleud
Date d'inscription : 04/02/2008

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  nvs le Mer 30 Avr 2008, 00:49

Wark a écrit:Dans mon groupe, nous n'avons même pas entendu parler de toutes ces fonctions du c.
dans le mien non plus. gardons ça pour la deuxième année Smile

Wark a écrit:Je dois dire que cela est assez complexe, la pile est une notion qui m'échappe un peu avec les ebp et esp. :// Il faut que je m'y mette.
je confirme Wink












_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  pbt le Mer 30 Avr 2008, 11:23

nvs a écrit:
Wark a écrit:Dans mon groupe, nous n'avons même pas entendu parler de toutes ces fonctions du c.
dans le mien non plus. gardons ça pour la deuxième année Smile
Dans mon groupe pas spécialement plus qu'ailleurs, j'ai parlé de l'exemple du cours permettant de faire un appel de fonction C de la même manière qu'un appel système dans sa forme
Code:
push [fd]
push buffer
push count
call read
et c'est à peu près tout.

Par contre, je dis à mes étudiants comment s'y retrouver dans une page de manuel ... où la "syntaxe" est la syntaxe C.



_________________
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: TD4, "rev"

Message  nvs le Mer 30 Avr 2008, 12:26

PbT a écrit:[...] j'ai parlé de l'exemple du cours permettant de faire un appel de fonction C de la même manière qu'un appel système dans sa forme
Code:
push [fd]
push buffer
push count
call read
et c'est à peu près tout.
il faut aussi nettoyer la pile après l'appel d'une fonction c, non ?
Code:
push dword [fd]
push buffer
push count
call read
add esp,3*4









_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  pbt le Mer 30 Avr 2008, 13:55

nvs a écrit:il faut aussi nettoyer la pile après l'appel d'une fonction c, non ?
Code:
push dword [fd]
push buffer
push count
call read
add esp,3*4
Bien sur .... c'était écrit très très petit.


_________________
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: TD4, "rev"

Message  Jean le Sam 03 Mai 2008, 13:32

escusez-moi mais je voit toujours pas comment on peut lire toute une ligne puis la mêtre à l'envère.quel fonction ont doit utiliser svp?

Jean

Nombre de messages : 98
Date d'inscription : 17/12/2006

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  Wilbur le Sam 03 Mai 2008, 13:42

En gros, tu lis ta ligne, caractère par caractère, en stockant chacun de ceux-ci dans un buffer (prévoir un buffer d'une taille assez importante) jusqu'à rencontrer un "retour chariot" (ou Line Feed, soit 10 en ascii). Lorsqu'un Line Feed est rencontré, tu passes à l'affichage, en commençant par la fin du buffer jusqu'au début...

Wilbur

Nombre de messages : 46
Age : 27
Prénom : Romain
Statut : Etudiant 2ème Réseaux
Date d'inscription : 20/02/2008

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  Jean le Sam 03 Mai 2008, 14:18

merci wilburt mais j'arrive pas ,mon problème est comment lire ma ligne ? confused

Jean

Nombre de messages : 98
Date d'inscription : 17/12/2006

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  Wilbur le Sam 03 Mai 2008, 14:48

Code:
[...]
lecture:

mov eax,3
mov ebx,[fileDescriptor]
mov ecx,temp
mov edx,1
int 80h

mov bl,10

cmp [temp],bl
jne lecture
[...]

Ceci lit dans le fichier renseigné par le FileDescriptor un caractère, qui est stocké dans la variable temp. Ce caractère est ensuite comparé à 10. En effet, 10 représente le lineFeed dans la table ascii (soit le "retour chariot" ou encore le "passage à la ligne", tu l'appelles comme tu veux Wink), et si le caractère est égal au 10, ça veut dire que tu es à la fin de la ligne: tu peux donc commencer son traitement.

Maintenant, à toi de rajouter les lignes de code permettant le stockage du caractère dans un buffer, et ne pas oublier non plus de vérifier si on arrive pas à la fin du fichier. Laughing

J'espère avoir éclairé ta lanterne...

Au plaisir.

Wilbur

Nombre de messages : 46
Age : 27
Prénom : Romain
Statut : Etudiant 2ème Réseaux
Date d'inscription : 20/02/2008

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  Jean le Sam 03 Mai 2008, 14:52

ah merci beaucoup wilbur, je vois plus claire mnt, je vais essayer de le faire tout de suite.. Smile

Jean

Nombre de messages : 98
Date d'inscription : 17/12/2006

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  Wilbur le Sam 03 Mai 2008, 15:04

Content d'avoir pu t'aider Very Happy

Au plaisir.

Wilbur

Nombre de messages : 46
Age : 27
Prénom : Romain
Statut : Etudiant 2ème Réseaux
Date d'inscription : 20/02/2008

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  Jean le Dim 04 Mai 2008, 02:46

voici ma démarche pour lire un caracter qui se trouve au fichier 'unTest.dat'

unTest db 'unTest.dat',0
...
ouvri:
----------
mov eax,5
mov ebx,[unTest]
mov ecx,0000b ;ouvrir en lecture
int 80h
mov [handle],eax

ecrire ds carAff le caracte a la premiere position:
---------------------------------------------
mov eax,3
mov ebx,[handle]
mov ecx,carAff
mov edx,1
int 80h

afficher le caracter:
-----------------
mov eax,4
mov ebx,1
mov ecx,carAff
mov edx,1
int 80h

fermet fichier:
-------------
mov eax,6
mov ebx,[handle]
int 80h

Aucun caractere n'est afficher a l ecran ,a l'aide svp!!!

Jean

Nombre de messages : 98
Date d'inscription : 17/12/2006

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  nvs le Dim 04 Mai 2008, 02:51

es-tu sûr d'avoir bien ouvert le fichier ? tu peux le savoir en regardant le contenu de eax après ta tentative d'ouverture. à mon avis, c'est là que se passe le problème...

en fait, dans ton cas, c'est même certain ! regarde d'un peu plus près les arguments que tu transmets lors de ta tentative d'ouverture Smile







_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

[LMIC] Rev

Message  john le Dim 04 Mai 2008, 11:59

bonjour à tous,

j'ai juste un petit problème je crois, mon nRev fait bien son travail, le problème ce qu'il ne fait que lire la première ligne de mon fichier
comment lui dire d'aller jusqu'a la fin du fichier?.
mon LireLigne lit les caractères jusqu'au moment on a trouve le 10 ascii et après j'affiche mon buffer,donc il me manque une condition pour
aller jusqu'à la fin.

Neutral
merci

john

Nombre de messages : 64
Prénom : john
Statut : 2ème Reseaux
Date d'inscription : 25/11/2007

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  Wilbur le Dim 04 Mai 2008, 12:09

Tu dois juste cycler sur lire-écrire jusqu'à ce que tu arrives à la fin du fichier...

Tu peux déterminer la fin du fichier si lors de la lecture, la valeur retournée dans eax vaut 0 (l'appel n'a rien lu).
Alors, tu traites la dernière ligne, tu fermes et c'est terminé Very Happy

Wilbur

Nombre de messages : 46
Age : 27
Prénom : Romain
Statut : Etudiant 2ème Réseaux
Date d'inscription : 20/02/2008

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  Jean le Lun 05 Mai 2008, 01:02

Dites moi si c'est bon, pour sauvegarder la valeur d une variable

save resd 1
..
mov [save],esi
....
mov ecx,[save]
mov [tab+ecx],al
j ai une erreur de segmentation merci...

Jean

Nombre de messages : 98
Date d'inscription : 17/12/2006

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  nvs le Lun 05 Mai 2008, 01:10

silent











_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  Jean le Lun 05 Mai 2008, 01:17

je veux juste savoir si [save] contiens bien la valeur de esi,
imaginons esi=5,[save]=5 aussi ??

Jean

Nombre de messages : 98
Date d'inscription : 17/12/2006

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  nvs le Lun 05 Mai 2008, 01:24

avec :
Code:
section .bss
    save  resd    1
section .code
    mov    esi,5
    mov    dword [save],esi    ; le dword est ici inutile mais c'est plus clair
on a bien que esi contient 5 puis que cette valeur est recopiée à l'adresse save, sur 4 octets Smile






_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  Phate le Jeu 08 Mai 2008, 11:07

nvs a écrit:il est signalé dans l'énoncé que l'usage des variables statiques et globales est réservé aux chaînes de caractères à afficher (les messages d'erreur par exemple), les variables buf et l_buff doivent donc disparaître à terme de ton code (sauf, bien entendu, si ton prof d'assembleur a levé cette contrainte) ;

Etant donné que dans l'énoncé, il est demandé de ne pas utiliser de variables globales pour les exercices qui suivent, juste avant l'exercice 5 (afficher) je suppose qu'en l'on peut en utiliser pour les exercices avant ? Non ?

Phate

Nombre de messages : 43
Age : 30
Prénom : A.
Statut : Etudiante
Date d'inscription : 10/09/2007

http://www.phate.be

Revenir en haut Aller en bas

Re: TD4, "rev"

Message  pbt le Jeu 08 Mai 2008, 14:01

Oui, mais l'important à ce stade (vu l'échéance) est l'exercice d'évaluation ... qui utiise certains des exercices précédents et qui n'a pas besoin de variables globales (sauf constantes éventuelles).

_________________
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: TD4, "rev"

Message  Gustavo le Jeu 08 Mai 2008, 15:28

je rajouterais l'exercice d'évaluation _et_ les deux procédures, à savoir, afficher et entierBinToStr. Je trouve que ça allège quand même bien le code Smile

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: TD4, "rev"

Message  Contenu sponsorisé Aujourd'hui à 05:26


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 2 Précédent  1, 2

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