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

Langage Delphi Discussion :

[BASM] Comment faire un "Far Call" ?


Sujet :

Langage Delphi

  1. #1
    Membre habitué Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Points : 170
    Points
    170
    Par défaut [BASM] Comment faire un "Far Call" ?
    Bonjour ...

    j'aimerais bien pouvoir implémenter, sous l'assembleur de Delphi Basm,
    un Call Far, un appel inter segment.
    Quelqu'un a t il une idée ? Comment écrire ca ?
    Tout grand merci a tous.

  2. #2
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Inter ségment ? Pourquoi faire ? Toute l'application est sur un seul ségment...
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  3. #3
    Membre habitué Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Points : 170
    Points
    170
    Par défaut
    J'implémente le "Callgate" de Chris_hks complètement en Delphi.
    (voir le forum assembleur)
    Quand tout est initialisé, je décolle en Ring0 par un call far !

  4. #4
    Membre habitué Avatar de - Robby -
    Inscrit en
    Juillet 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 266
    Points : 170
    Points
    170
    Par défaut
    Bon ... j'ai trouvé !
    Le Call ou Jmp " Far " n'est pas reconnu en Basm, ni Delphi 6, ni le 7.
    Il faut l'implémenter a la main !
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    asm
    // Call far absolute 16:32 (adresse complète dans l'opérande)
    db $9A
    dd $00000032
    dw     $0016
     
    // Call far absolute indirect (adresse sur 48 bits trouvée dans DS:00000005)
     
    db  $FF
    db  $1D
    dd  $00000005
     
    // Call far absolute indirect (adresse sur 48 bits trouvée dans FS:00000005)
    db  $64
    db  $FF
    db  $1D
    dd  $00000005
     
    // Call far ptr [eax]
    db $FF
    db $18
    end;
    C'est Mr Pierre Maurette qui m'a donné la solution.
    Merci a lui !

    voila !

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

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