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

Pascal Discussion :

Instruction Inline($FA); ?


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 8
    Par défaut Instruction Inline($FA); ?
    Bonjour a tous,
    J'ai un programme en pascal qui gere une interruption materielle (IRQ10) .
    En fin d'utilisation d'interruption j'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     inline ($FA);
     SetIntVec($72,sauve);
     inline ($FB);
    Mais j'avoue ne pas savoir a quoi serve les 2 lignes Inline.

    Petite question suplementaire :
    J'ai lu l'excellent cours sur les interruptions sur le site.
    Il est ecrit que la variable "sauve" doit etre declarée comme procedure
    Donc le code -> SetIntVec($72,@sauve);
    Dans mon programme je declare "sauve" en pointer.
    Y a t il une grosse difference?
    Merci de m'avoir lu
    Bye
    Julien

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 055
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    $FA et $FB sont respectivement les opcodes des instructions Assembleur CLI et STI.
    Ces deux instructions manipulent le flag d'interruption, permettant de bloquer ces dernières pendant le temps de modification du vecteur d'interruptions puis de les restaurer juste après :
    • CLI = CLear Interrupt flag (met le flag à 0)
    • STI = STore Interrupt flag (met le flag à 1)

    Pour la seconde partie de la question, si ta variable sauve contient l'adresse à charger dans le vecteur d'interruptions, il ne faut pas utiliser l'opérateur @ sous peine de charger l'adresse de la variable sauve et non son contenu. Ce n'est pas du tout pareil.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 8
    Par défaut
    Bonjour,
    Ok, merci Alcatîz pour tes reponses.
    J'ai bien compris pour les 2 commandes Inline (ca sert de securité pendant la remise du vecteur d'interruption)

    Pour la seconde question :
    Dans ma routine j'utilise la variable comme suit (ca a l'air de marcher)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Var sauve : pointer;
     
    Begin
    GetIntVec($72,sauve);
    SetIntVec($72,@POIDS_ISA);
    ....
    ....
    Et dans le document present sur le site on a ca (ca a l'air de marcher aussi)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Var sauve : procedure;
    Begin
    GetIntVec($72,@sauve);
    SetIntVec($72,@POIDS_ISA);
    ....
    ....
    En faite je voulais savoir qu'elle est la meilleure "expression" pour mon programme.
    merci
    Julien

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

Discussions similaires

  1. [GCC] Assembleur inline et instructions SSE2
    Par progfou dans le forum Linux
    Réponses: 3
    Dernier message: 27/06/2007, 20h44
  2. Passer de la zone d'édition vers une instruction sql
    Par tripper.dim dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/11/2002, 14h44
  3. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h17
  4. [Crystal Report][VB6] instruction PrintReport
    Par yyyeeeaaahhh dans le forum SDK
    Réponses: 4
    Dernier message: 29/07/2002, 14h58
  5. [TASM] Problème concernant l'instruction LGDT
    Par Ninkosen dans le forum Assembleur
    Réponses: 3
    Dernier message: 15/07/2002, 19h09

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