td3

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

td3

Message  didi le Sam 13 Mar 2010, 18:31

bonjour

j'ai un problem en td3

j'ai (dans registre esi) compté le nombre de caracter que j'ai lu dans un fichier
maintenant j'envie de l'afficher
et j'ai utilisé l'apel systm write mais il n'affiche rien

mov eax,4
mov ebx,1 à l'écran
mov ecx,esi à partir de mon compter
mov edx,1 sur 1 byte


ça ne fonctione pas

mais quand j'utilise printd il affiche bien le nombre

quelqu'un peut m'aider

merci d'avence

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: td3

Message  LSV le Sam 13 Mar 2010, 19:11

tu fais bien l'interruption après avoir mis ca dans tes registres?

LSV

Nombre de messages : 638
Age : 27
Prénom : Jérome
Statut : Diplomé 2013
Localisation : Anderlecht
Date d'inscription : 24/09/2007

Revenir en haut Aller en bas

Re: td3

Message  Anthoblack le Sam 13 Mar 2010, 19:17

LSV a écrit:tu fais bien l'interruption après avoir mis ca dans tes registres?
En effet, bonne question. C'est un peu court pour t'aider, navré... On ne connait même pas le contenu du registre esi (même si on le devine)

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

Re: td3

Message  DjMan42 le Sam 13 Mar 2010, 19:35

Essai d'utiliser un handle
mov ecx,[handle]

DjMan42

Nombre de messages : 219
Prénom : Eden
Statut : Etudiant 1er Indu
Localisation : Bruxelles
Date d'inscription : 28/10/2008

Revenir en haut Aller en bas

Re: td3

Message  Anthoblack le Sam 13 Mar 2010, 23:04

DjMan42 a écrit:Essai d'utiliser un handle
mov ecx,[handle]
WRITE :
4 STD POSIX { ssize_t write(int fd, const void *buf, size_t nbyte); }

ECX contient donc l'adresse du buffer (et non le handle (file descriptor => fd) qui lui doit être dans EBX...

EAX contient donc le numéro de la fonction (write = 4)
EBX contient le fd (1 = sortie standard (écran)) donc là où tu veux écrire...
ECX contient l'adresse du buffer (qui peut-être une zone déclarée en .data) donc ce que tu veux écrire...
EDX le nombre de caractères (byte) à lire (1 byte dans ton cas apparemment)

Ne pas oublier de provoquer l'interruption 80.

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

Re: td3

Message  didi le Sam 13 Mar 2010, 23:36

merci pour les réponses

j'ai essayé déclarer une variable et j'ai mis la compter(esi) dans le variabl mais ça ne fonctionne pas toujours

..
handle DB 0
....
..

mov [handle],esi

mov eax,4
mov ebx,1
mov ecx,[handle]
mov edx,1
int 0x80

ça ne fonctione pas toujour Sad

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: td3

Message  Bill le Dim 14 Mar 2010, 12:14

Normal que ça ne fonctionne pas, parce qu'avec write, tu affiches la valeur ascii qui est dans le registre, ou dans ta variable, par exemple, si tu as 10, normalement il va te faire un passage à la ligne, le truc à faire, c'est que tu dois séparer chaque chiffre de ton nombre, et afficher sa valeur ascii.
Le truc que j'ai fais, j'additionne chaque chiffre par 30h et ça m'affiche le chiffre en question.
Regarde Printd, ça pourra t'aider Wink

Bill

Nombre de messages : 73
Age : 27
Prénom : Kevin
Statut : Ancien
Localisation : Brussels
Date d'inscription : 07/10/2009

Revenir en haut Aller en bas

Re: td3

Message  deeploy le Dim 14 Mar 2010, 20:45

Bonsoir,

Pour éviter de pondre mille sujets, je continue sur la lancée du td3 parce que j'ai un problème aussi.

J'ai juste un soucis de compréhension avec mon programme td3. c'est concernant lseek. Dans les paramètres à prendre en compte je ne comprends pas ce qu'il faut mettre dans l'offset. Est ce que c'est la taille qu'il faudra mettre?
Et concernant SEEK_SET, SEEK_CUR et SEEK_END, à quoi cela correspond ?
SEEK_END je pense que c'est pour voir la fin de fichier
SEEK_CUR pour le caractère courant.
Mais SEEK_SET je vois pas du tout. :/

Merci d'avance.

deeploy

Nombre de messages : 14
Age : 29
Prénom : kevin
Statut : étudiant télécoms et réseaux 1ère
Date d'inscription : 10/11/2009

Revenir en haut Aller en bas

Re: td3

Message  Madrid le Dim 14 Mar 2010, 20:51

deeploy a écrit:Bonsoir,

Pour éviter de pondre mille sujets, je continue sur la lancée du td3 parce que j'ai un problème aussi.

J'ai juste un soucis de compréhension avec mon programme td3. c'est concernant lseek. Dans les paramètres à prendre en compte je ne comprends pas ce qu'il faut mettre dans l'offset. Est ce que c'est la taille qu'il faudra mettre?
Et concernant SEEK_SET, SEEK_CUR et SEEK_END, à quoi cela correspond ?
SEEK_END je pense que c'est pour voir la fin de fichier
SEEK_CUR pour le caractère courant.
Mais SEEK_SET je vois pas du tout. :/

Merci d'avance.

man lseek Todo

sinon pour répondre à ta question :


Nom
lseek - Positionner la tête de lecture/écriture dans un fichier.
Synopsis
#include <sys/types.h>
#include <unistd.h>

off_t lseek(int fildes, off_t offset, int whence);
Description
La fonction lseek place la tête de lecture/écriture à la position offset dans le fichier associé au descripteur fildes en suivant la directive whence ainsi :

SEEK_SET
La tête est placée à offset octets depuis le début du fichier.
SEEK_CUR
La tête de lecture/écriture est avancée de offset octets.
SEEK_END
La tête est placée à la fin du fichier plus offset octets.


donc le dernier paramètre (whence) c'est la position ou tu veux que la tête de lecture/écriture soit.
corrigez moi si je me trompe Very Happy

Madrid

Nombre de messages : 187
Prénom : Noor
Statut : étudiant 2RET
Localisation : Woluwé-Saint-Lambert
Date d'inscription : 28/12/2006

Revenir en haut Aller en bas

Re: td3

Message  Anthoblack le Lun 15 Mar 2010, 16:01

Madrid a écrit:donc le dernier paramètre (whence) c'est la position ou tu veux que la tête de lecture/écriture soit.
corrigez moi si je me trompe Very Happy
C'est correct Wink

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

Re: td3

Message  Contenu sponsorisé Aujourd'hui à 18:55


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