IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

[linux] utilisation des appels système


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Invité
    Invité(e)
    Par défaut [linux] utilisation des appels système
    Bonjour,

    Étant sous Linux, je cherche de la documentation sur les appels système.

    A titre d'exemple, pour l'appel système numéro 4, qui permet d'écrire des caractères à l'écran, il faut mettre la valeur 4 dans EAX, le numéro du descripteur de flux (sortie standard = 1) dans EBX, l'adresse de début de la chaîne de caractère à écrire dans ECX, et le nombre d'octets à écrire dans EDX. Après l'appel système, EAX contient le nombre d'octets écrits.

    Je sais comment cet appel marche car il est expliqué dans les "hello world", mais j'ignore comment fonctionnent les 189 autres appels, et je ne trouve pas de documentation à ce sujet.

    Merci pour votre aide.


    ----------------------------------------------
    cpu : intel core 2 duo (64 bits)
    OS : Debian GNU/Linux 6 (64 bits)
    assembleur : gas (gnu assembler)
    éditeur de liens : ld

  2. #2
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    To start press any key. (reading screen) Where's the "any" key? I see Esc, Catarl, and Pig Up. There doesn't seem to be any "any" key. Wo! All this computer hacking is making me thirsty. I think I'll order a Tab. (presses TAB key). -- HOMER --

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour le lien. Il indique pour chaque appel les registres utilisés et les type de données attendus, mais pas leurs significations.

    Je continue de chercher une description précise de l'utilisation de chaque registre car certains appels système ont plusieurs arguments du même type.

  4. #4
    Membre actif Avatar de golden boy
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 120
    Points : 230
    Points
    230
    Par défaut
    Moi je me sers de cette page : http://syscalls.kernelgrok.com/ (version 2.6.35.4 de Linux, donc assez récent).
    Le contenu des chaque registre est explicité et il y a un moteur de recherche, je trouve cela assez pratique.

    P.S. : Pour connaître les significations de chaque syscall, tu as le man2 (ils sont en lien pour chaque syscall de la colonne "name" du site que j'ai donné)

  5. #5
    Invité
    Invité(e)
    Par défaut
    Apparemment l'ordre d'utilisation des registres est (eax, ebx, ecx, ...) est le même que dans la signature des fonctions POSIX du langage C.

    Donc j'ai ce qu'il me faut maintenant pour travailler.

    Merci pour les réponses.

  6. #6
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    ça me fait penser que linux n'est pas que pour x86, donc, le manuel des syscall n'est pas le meme selon l'architecture.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [linux]terminer un appel système lancé en arrière plan
    Par ankou29666 dans le forum Langage
    Réponses: 5
    Dernier message: 21/08/2007, 18h37
  2. Utilisation des sous-systèmes AS/400
    Par zevulko dans le forum AS/400
    Réponses: 1
    Dernier message: 03/06/2007, 00h29
  3. [Lazarus][Linux] Utilisation des composants powerpdf
    Par orion07 dans le forum Lazarus
    Réponses: 1
    Dernier message: 24/01/2007, 11h34
  4. Pourquoi inclure des .lib pour utiliser des DLLs système?
    Par NicolasJolet dans le forum Windows
    Réponses: 4
    Dernier message: 08/08/2006, 14h59
  5. Rôle et utilisation des tables système RDB$
    Par lio33 dans le forum Débuter
    Réponses: 2
    Dernier message: 06/10/2005, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo