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

Programmation d'OS Assembleur Discussion :

Réaliser une fonction Exec pour mon OS


Sujet :

Programmation d'OS Assembleur

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 66
    Points : 27
    Points
    27
    Par défaut Réaliser une fonction Exec pour mon OS
    Bonjour, je veux savoir comment faire une fonction exec en Assembleur !!
    Voilà, par exemple j'ai un fichier open.bin qui ouvre un fichier : je veux l'exécuter apres avoir fait un boot style :
    open fichier.txt ; et là il s'exécute " exec 'open.bin fichier.txt' "

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 366
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 366
    Points : 20 402
    Points
    20 402
    Par défaut
    Citation Envoyé par suisspal
    bjr je veut savoir comment faire une fonction exec en assemebleur !!
    voila par exemple j'ai un fichier open.bin qui ouvre un fichier je veut l'executer apres avoir fait un boot style :
    open fichier.txt ; et la il s'excecute " exec 'open.bin fichier.txt' "
    ? On n'y comprend pas grand chose : tu parles de boot c'est avec ton propre OS ?
    sinon par exemple , il faut que le binaire possède un entête Portable Executable sous Windows par exemple.
    Sous Linux il faut changer les attributs avec CHMOD

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 66
    Points : 27
    Points
    27
    Par défaut
    oui c pour mon propre os

  4. #4
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 366
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 366
    Points : 20 402
    Points
    20 402
    Par défaut
    Citation Envoyé par suisspal
    oui c pour mon propre os
    C'est à toi de tout gérer l'exécution des programmes la gestion de la mémoire etc...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 66
    Points : 27
    Points
    27
    Par défaut
    par exemple comment puisje faire executer un fichier binaire ?? ou executable

  6. #6
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Citation Envoyé par suisspal
    par exemple comment puisje faire executer un fichier binaire ?? ou executable
    Ben ça dépends justement de comment tu as fais ton OS

    On parle vraiement de la même chose ?

  7. #7
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut Re:
    Citation Envoyé par suisspal
    par exemple comment puis-je faire exécuter un fichier binaire ?? ou exécutable
    Tu dois lire le contenu du fichier que tu veux exécuter, charger la partie exécutable en mémoire puis faire un jmp ou un call vers cette adresse. Mais déja pour savoir à quel endroit du disque se trouve le fichier il faut que tu connaisses bien le système de fichiers (sauf si tu as déja défini ton propre système de fichiers ...). Ensuite pour identifier la partie exécutable tu dois connaître la structure du fichier (le format PE dans le cas des exécutables Windows par exemple), tu t'en passes de cette étape si le fichier est directement exécutable.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 66
    Points : 27
    Points
    27
    Par défaut
    puisje avoir un mini exemple svp

  9. #9
    Membre actif

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 193
    Points : 277
    Points
    277
    Par défaut
    Salut,
    En supposant que l'on soit sous windows,l'API CreateProcess fait le boulot

  10. #10
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 225
    Points : 113
    Points
    113
    Par défaut
    Bonjour,

    si je comprends bien, tu veux faire un boot loader qui charge un morceau de code appelé Kernel ( ou noyau ) c'est ça ?

    En mode 16 bits tu utilises l'interruption 13h pour charger des secteurs ( le nombre dépend de la taille de ton kernel ) depuis le deuxiéme secteur ( le premier étant reservé pour le bootloader ) .

    Puis pour que cela marche bien sûr, il faudra que ton boot loader soit au premier secteur, SUIVI du kernel .

    Pour l'interruption 13h , tu spécifies 0x1000 comme adresse de destination .

    Et voilà t'as le code de ton kernel dans la mémoire !

    Après faudra l'executer, pour faire cela, rien de plus simple, un simple jmp dword 0x1000 suffit .

    Pour plus d'infos : http://inferno.cs.univ-paris8.fr/~am...utorial03.html

    PS : n'oublie pas de spécifier ORG 0x0

Discussions similaires

  1. Réaliser une fonction pour ToggleButtonXX_Click
    Par Vincent32 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/06/2013, 19h16
  2. Réponses: 10
    Dernier message: 05/08/2010, 12h02
  3. Une fonction chmod pour dossier
    Par Anduriel dans le forum Langage
    Réponses: 2
    Dernier message: 15/01/2006, 13h17
  4. [SQL] Comment réaliser une fonction d'incrementation ?
    Par da_latifa dans le forum Langage SQL
    Réponses: 3
    Dernier message: 30/12/2005, 11h14
  5. [MySQL] Une fonction perso pour aléger le code...
    Par tsing dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/11/2005, 23h56

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