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 16-bits Assembleur Discussion :

indication pour une instruction


Sujet :

x86 16-bits Assembleur

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Points : 39
    Points
    39
    Par défaut indication pour une instruction
    bonjour,
    j'ai une question à propos de la fin d'un programme assembleur:
    qu'elle est l'instruction qui fait que le programme se termine proprement c'est à dire:fermeture eventuelles de fichiers,libération de la mémoire etc Merci

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    C'est propre à chaque système d'exploitation, et ça dépend donc de celui que tu utilises.

    Si tu es sous Unix, c'est (en général) l'appel système #1 via « int 80h », ou via la fonction exit() bufferisée par la libc. Sous Windows, même chose : la fonction C « ExitProcess() » appelée avec la macro INVOKE.

    Mais si, comme c'est probable, tu programmes sous D.O.S. en mode 16 bits (même si tu le fais depuis Windows), c'est la fonction 4Ch de l'interruption 21h. Ce numéro va dans AH et le code de retour dans AL. Donc :

    Code asm : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            mov     ax,4c00h
            int     21h

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Points : 39
    Points
    39
    Par défaut
    re,
    donc mov ah,4c00h int21h restore le system à nouveau c'set à dire libére la memoire et tt?

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Citation Envoyé par marooh Voir le message
    re,
    donc mov ah,4c00h int21h restore le system à nouveau c'set à dire libére la memoire et tt?
    Oui, s'il y a connaissance de choses que tu as allouées par son biais. Tous les systèmes d'exploitation font ça (heureusement). Mais c'est quand même mieux si tu fais le ménage toi-même avant de sortir.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 59
    Points : 88
    Points
    88
    Par défaut
    La fonction 4Ch de l'interruption 21h est apparue avec le version 2 du DOS.
    Sous DOS 1.x, les programmes sont obligés de fermer les fichiers un à un via la fonction 10h avant de se terminer par la fonction 0 ou l'interruption 20h avec CS pointant le segment PSP. C'est pourquoi, une application bien conçue veille à vérifier la version du DOS sur laquelle elle tourne grâce à la fonction 30h de l'interruption 21h (qui renvoie 0 en AL sous DOS 1.x car inexistante).

Discussions similaires

  1. [Débutant] Attribuer des noms avec indices pour une matrice ligne par ligne
    Par mylia04 dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/08/2013, 14h45
  2. Formater une chaine pour une instruction SQL
    Par Coicatak dans le forum C#
    Réponses: 5
    Dernier message: 21/12/2011, 00h43
  3. Instruction pour une erreur
    Par cetiop dans le forum C
    Réponses: 7
    Dernier message: 29/08/2007, 21h39
  4. Temps cpu pour une instruction
    Par akiraa dans le forum C++
    Réponses: 10
    Dernier message: 15/08/2007, 03h15
  5. instruction valable pour une ligne d'une table
    Par Skizo dans le forum Access
    Réponses: 2
    Dernier message: 18/05/2006, 16h51

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