Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : [NASM-Linux] Problème de buffer [ Système d'exploitation / Linux ] (yann2192)

samedi 5 janvier 2008 à 00:02:53 | [NASM-Linux] Problème de buffer

yann2192

Bonjour à tous, je me suis lancé dans l'assembleur 32bits avec les appels linux et j'ai un problème.

Je récupére le chemin d'un fichier entrer par l'user avec read dans un buffer et je n'arrive pas à ouvrire le fichier avec le buffer

voici le code qui pose probleme :

BITS 32
 
     SECTION .data
        bufsiz      dd 1024 ; taille du buffer

    SECTION .bss
        buf    resb 1024
       
     SECTION .text
         GLOBAL _start
        
         _start:
 
        mov eax, 3 ; Fonction READ
        mov ebx, 0 ;
        mov ecx, buf ; stoke dans buf
        mov edx, bufsiz
        int 0x80
       
        mov eax, 5 ; Fonction OPEN
        mov ebx, buf ; Chemin   
        mov ecx, 10 ; Flag
        mov edx, 0 ; Mode
        int 0x80

Il n'y a pas d'erreur d'assemblage mais le fichier n'est pas ouvert.

Avez vous une idée ?
       

lundi 7 janvier 2008 à 10:55:30 | Re : [NASM-Linux] Problème de buffer

_dune2_

Membre Club
Salut,

Dans le fichier /usr/include/bits/fcntl.h :

#define O_ACCMODE          0003
#define O_RDONLY             00
#define O_WRONLY             01
#define O_RDWR               02
#define O_CREAT            0100 /* not fcntl */
#define O_EXCL             0200 /* not fcntl */
#define O_NOCTTY           0400 /* not fcntl */
#define O_TRUNC           01000 /* not fcntl */
#define O_APPEND          02000
#define O_NONBLOCK        04000
#define O_NDELAY        O_NONBLOCK
#define O_SYNC           010000
#define O_FSYNC          O_SYNC
#define O_ASYNC          020000

ton paramètre flag à la fonction open est : 10, soit "00001010" donc 010 + 002 en octal,
or 010 ne correspond à aucune option ....
Ensuite, y-a-t-il un code d'erreur de retour ??
Si tu exécutes pas-à-pas ton appli avec gdb, peux-tu confirmer que ton "buf" contient bien
le nom du fichier que tu as entré ?

Dune2

Gentoo... que du bonheur ...

lundi 7 janvier 2008 à 15:15:00 | Re : [NASM-Linux] Problème de buffer

yann2192

J'ai essayer de remplacer la fonction ouverture fichier par écriture dans console et le buffer contient bien mon fichier : test.txt

Si cela vient du flag d'ouverture je vais le modifier ce soir et je retesterai

Yann

dimanche 13 janvier 2008 à 10:06:17 | Re : [NASM-Linux] Problème de buffer

yann2192

Non sa ne vient pas du flag, j'ai essayer d'ouvrire le fichier avec ce morceau :

section .data
fichier    dd "test.txt",0


et cela marche à la perfection donc je pense qu'il doit y'avoir une manipulation sur le buffer avant de l'utiliser mais laquel ?



Cette discussion est classé dans : buffer, problème, linux, mov, buf


Répondre à ce message

Sujets en rapport avec ce message

débutant qui a un prob avec l'int21h [ par sibi12 ] salut voivi mon code : mov ah, 09h mov dx, offset buffer int 21hbuffer a été déclaré comme ca: buffer db 50 dup(0)le compilateur me met problème d'horloge [ par gctom ] bonjour a tousje vous expose mon problème :je dois réaliser uen horloge qui permet d'afficher l'heure la date et autre chose.ceci étant fait je passe [Débutant] Problème de compiler [ par casafa ] Bonjour,Voila le code que j'esseye de compiler:MOV DX,offset MessageMOV AH,9INT 21hMOV AX,04c00hINT 21hMessage DB"Hello World !$"Avec le compilateur A Saisie clavier [ par RM50Man ] Dans le code je dos saisir une chaine mais a aucun moment le progme permet de la saisir!!!!Comment faire pour entrer une chaine? mov ah, 0ch ;effaceme masm32 buf variable [ par skotmarud ] bonsoir,j'ai un probleme pour créer un buffer à taille variable pourtant je suis tombé sur ce post : http://www.asmfr.com/infomsg_MASM32-COMENT-DECLAR Graphique [ par RM50Man ] Bonjour a tous!!!!Je veux tracer une ligne mais ca ne marche pas, je passe les parametre par la pile,et ensuite ds la fonction principale, je remplis Problème d'adresse effective [ par Ihlianov ] Hi,J'ai un problème avec NASM, qui me rend cinglé.Je code un .Com (16 bits) et il me revoit une erreur sur l'instruction suivante : mov ax, [d Et linux dans tout ça ?!!! [ par progfou ] Lu tt le monde !Il y a 2 choses que je trouve dommage :- vous ne parlez (quasiment) pas de linux et de la programmation système sous ce système d'expl probleme avec l interruption affichage de chaine [ par M0NTOYA ] bon voila mon probleme ,qd j utilse cette procedure(presentation) pour afficher une chaine de caractere presentation PROC PUSHA MOV AH,09h INT 21h POP probleme avec l interruption affichage de chaine [ par M0NTOYA ] bon voila mon probleme ,qd j utilse cette procedure(presentation) pour afficher une chaine de caractere presentation PROC PUSHA MOV AH,09h INT 21h POP


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,125 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.