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 :

Quels interruptions utiliser en Assembler Windows


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 105
    Points : 49
    Points
    49
    Par défaut Quels interruptions utiliser en Assembler Windows
    Bonjour

    je voudrais savoir quelles sont les interruptions utilisables en programmation assembleur win32

    Je sais que certaines interruptions ne sont plus valides (interruptions du dos)

    merci pour votre réponse

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    Aucune.
    Les interruptions dos ne sont pas permises car Windows s'execute en mode protégé.

    Windows n'a rien à voir avec Linux. Et même si les interruptions dos seraient permises, tu ne pourrais faire de programme moderne avec (16bits uniquement).
    http://en.wikipedia.org/wiki/MS-DOS_API

    SI tu veux programmer en asm, je te conseil plutôt d'utiliser Fasm. C'est comme Masm, si on peut dire, mais en mieux. Projet actif, bonne doc, beaucoup d'exemples explicites, et syntaxe vraiment intuitive je trouve.

    http://flatassembler.net/download.php
    http://flatassembler.net/examples.php
    http://flatassembler.net/docs.php

    Et surtout, l'indispensable Msdn:
    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

    Beaucoup de fonctions disposent d'un ou plusieurs exemples en bas de page:
    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

    Il y a aussi des codes complets en exemple pour chaque api:
    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

    Sur un forum, j'avais lu le post d'une personne qui disait: "j'ai lu telle doc, telle doc, telle doc, telle doc, et j'ai fini par lire "the art of assembly", mais je n'arrive toujours pas à coder un programme, que me conseillez-vous ?"

    C'est un forgeant qu'on devient forgeron. Donc si tu veux savoir programmer en assembleur, code en assembleur. Regarde les exemples, modifie les, réécrit des code C en asm, etc..

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Les interruptions logiciels ou encore les exceptions (ou encore les interruptions programmées ou encore appel système) sont des routines (programmes) écrite par le concepteur du système (Windows, Linux...) pour permettre à l'utilisateur d'accéder au matériel de son PC depuis une application. Ces interruptions seront donc exécutées en mode protégé (mode 32bit pour les processeurs 32bit).

    Dans un programme assembleur, l'instruction int n permet de générer une interruption (appel système) immédiatement après son exécution. La valeur n est le ID d'une telle interruption. Il varie d'un système à l'autre (le choisx du concepteur). Sous Linux n = 128 et sous Windows n = 33.

    Je vous invite, pour bien comprendre les interruptions, de lire le chapitre 9 de ce document : https://www.google.tn/url?sa=t&rct=j...LjY18zyZt6YQQA

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    merci pour vos réponses et vos liens

    question : pour programmer des applications windows en assembleur, il faut une librairie windows?
    si oui, quelles sont -elles pour fasm, nasm?

    Et où pourrais-je les trouver ?

    Google ne m'aide pas sur ce coup-là

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    Tu trouveras une grande partie de réponses dans les exemples Fasm.
    Télécharge le programme, ensuite regarde dans le répertoire "examples", puis tu ouvres l'exemple "template.asm".

    Regarde en bas, le linkage des librairies est dans la section "idata":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    section '.idata' import data readable writeable
     
      library kernel32,'KERNEL32.DLL',\
    	  user32,'USER32.DLL'
     
      include 'api\kernel32.inc'
      include 'api\user32.inc'

    Donc par exemple, imaginons que tu souhaites coder un programme utilisant des sockets.
    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

    En bas de la page, la dll necessaire est précisé dans le tableau "Requirements".
    Et pour la fonction "socket", c'est "Ws2_32.dll".

    Donc dans ton fichier.asm, tu le rajoutes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    section '.idata' import data readable writeable
     
      library kernel32,'KERNEL32.DLL',\
    	  user32,'USER32.DLL',\
    	  ws2_32,'WS2_32.DLL
     
      include 'api\kernel32.inc'
      include 'api\user32.inc'
      include 'api\wsock32.inc'
    Normalement avec la doc et les exemples de Fasm + la Msdn, tu as tout ce qu'il faut pour débuter.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    d'accord, et pour appeler les fonctions de la librairie, ce sont les mêmes noms pour Fasm?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 397
    Points : 424
    Points
    424
    Par défaut
    Oui.

    Regarde les exemples c'est très bien fait.
    - quetannon (réseau)
    - minipad (bureautique)
    etc..

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/03/2010, 14h46
  2. Création de graphes pour illustrer le .tex, quel logiciel utiliser sous windows ?
    Par lyxthe dans le forum Bibliographies - Index - Glossaires
    Réponses: 3
    Dernier message: 11/02/2008, 10h19
  3. Quels outils utiliser pour le reverse engineering sous windows
    Par Menontona dans le forum Autres Logiciels
    Réponses: 15
    Dernier message: 30/05/2006, 23h15
  4. Réponses: 4
    Dernier message: 14/12/2005, 10h14
  5. Réponses: 2
    Dernier message: 11/07/2002, 08h31

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