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 :

[Win32] Instructions cli et sti


Sujet :

x86 32-bits / 64-bits Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 57
    Par défaut [Win32] Instructions cli et sti
    Bonjour a tous j'aurais voulu savoir précisément à quoi servent ces instructions (cli et sti) ?

  2. #2
    Membre éprouvé
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Par défaut
    Bonjour,

    STI (Set Interrupt) sert à armer le drapeau d'interruption. CLI (Clear Interrupt) est l'instruction contraire, qui désarme le drapeau d'interruption. Permet principalement d'activer/désactiver les interruptions hardware.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 57
    Par défaut
    Est-ce que tu pourais être plus précis stp, ou me renvoyer vers un tutorial ?
    A quoi correspondent ces interruptions et qund osnt-elles utilisées ?
    Par exemple, j'ai un code source de driver qui fait un beep carte mère, et lorsqu'il envoie des données sur les ports de la carte avec des IN et OUT, il met des cli et sti... pourquoi ?
    Au fait, j'ai entendu parle de la fonction HalMakeBeep pour créer un beep carte mère. Peut-on l'appeler du user-land ou faut-il faire un driver ?

  4. #4
    Membre éprouvé
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Par défaut
    lorsqu'il envoie des données sur les ports de la carte avec des IN et OUT, il met des cli et sti... pourquoi ?
    Il met des CLI et STI pour empêcher les interruptions matérielles (comme l'appui sur une touche du clavier), probablement dans ce cas pour que le processeur ne soit pas dérangé soit par l'utilisateur, soit par des timers déclenchant des interruptions à intervalles réguliers.

    Pour savoir qu'est-ce qu'une interruption, outre l'entrée Interruption de la FAQ, tu as un tutoriel en assembleur très bien fait qui parle également des interruptions. Enfin, tu peux regarder le manuel Intel aux entrées CLI et STI.

    Pour HalMakeBeep, qui est importée de la bibliothèque HAL.DLL (il faut posséder HAL.LIB pour l'utiliser), la dll se charge visiblement des appels au système, tu peux donc l'appeler de n'importe quel niveau de sécurité. Elle prend comme seul paramètre la fréquence du son.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 57
    Par défaut
    Pourquoi dois-je utiliser hal.lib ? Je ne peux pas aller chercher les fonctions dans hal.dll avec GetProcAdress() ?
    J'ai trouvé hal.lib mais elle est dans le DDK, est-ce que cela signifie qu'un driver est nécessaire ?
    et puis je n'ai trouve aucun .h, comment utiliser le .lib ?

  6. #6
    Membre éprouvé
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Par défaut
    Hal.lib est utile pour importer HalMakeBeep en assembleur; je pense que nous ne sommes pas sur la même fréquence.

    Je ne peux pas aller chercher les fonctions dans hal.dll avec GetProcAdress() ?
    Tu peux faire ça, en C... auquel cas, ce message n'a rien à faire dans le forum assembleur.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/06/2007, 17h25
  2. [win32]C avec C++/CLI
    Par gdpasmini dans le forum C++/CLI
    Réponses: 8
    Dernier message: 13/06/2006, 22h18
  3. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  4. [Crystal Report][VB6] instruction PrintReport
    Par yyyeeeaaahhh dans le forum SDK
    Réponses: 4
    Dernier message: 29/07/2002, 14h58

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