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

Assembleur Discussion :

Remplacement chargement d'adresse de segment par une directive ASSUME


Sujet :

Assembleur

  1. #1
    Provisoirement toléré
    Profil pro
    Inscrit en
    février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 29
    Points : 17
    Points
    17
    Par défaut Remplacement chargement d'adresse de segment par une directive ASSUME
    voici une instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mov ax,@DATA
    mov ds,ax
    comment remplacer cette instruction par la directive ASSUME ?

    merci d'avance !!

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    mars 2003
    Messages
    7 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

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

    Informations forums :
    Inscription : mars 2003
    Messages : 7 784
    Points : 56 486
    Points
    56 486
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Une directive ASSUME ne peut remplacer ces instructions car elle s'adresse à l'assembleur (le compilateur) pour indiquer à quel registre un segment ou groupe de segments doit être associé au moment de l'assemblage et de l'édition de liens.

    Les deux instructions, par contre, s'adressent au processeur pendant l'exécution du programme, en fixant réellement l'adresse du segment.

    Il s'agit de deux choses complètement différentes. J'espère que tu saisis la nuance ?
    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
    Provisoirement toléré
    Profil pro
    Inscrit en
    février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    dans un exo de tp
    cé indiqué de remplacer ces instructions par la directive ASSUME ???

  4. #4
    Membre du Club
    Inscrit en
    février 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : février 2007
    Messages : 45
    Points : 44
    Points
    44
    Par défaut
    personne n'as répondu car il est impossible de remplacer ces instruction par la directive ASSUME :
    assume permet de couvrir toutes les données contenues dans un segment si on l'ecrit pas on sera a chaque fois obligé de mentionner le segment ( exp: mov AX, DS:N1).

    par contre cette suite d'instruction ( séquence d'initialisation ) est obligatoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mov ax,@DATA
    mov ds,ax
    le langage assembleur comporte pas de mov pour DS,ES,SS avec une valeur immédiate d'où le passage obligatoire par un registre

  5. #5
    Rukia
    Invité(e)
    Par défaut
    Bonjour
    Je crois que tu n'est pas compris la question de votre tp
    En peut pas remplacé la directive assume mais c’est obligé de la rajouter avants les 2 instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      code segment
    assume cs:code , ds:data
     mov ax ,data 
     mov ds, ax
    Dernière modification par Rukia ; 16/05/2007 à 21h47.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    mars 2007
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2007
    Messages : 533
    Points : 124
    Points
    124
    Par défaut
    on n'est pas obligé de mettre assume avant les deux mov !!


    on peut s'en passer !!

  7. #7
    Rukia
    Invité(e)
    Par défaut
    salut
    C'est la directive ASSUME qui permet d'indiquer à l'assembleur où se situe le segment de données et le segment de code.
    Puis il s'agit d'initialiser le segment de données :
    MOV AX, nom_du_segment_de_donnees
    MOV DS, AX

  8. #8
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2005
    Messages : 702
    Points : 2 019
    Points
    2 019
    Par défaut
    Bonjour,

    Effectivement, on est pas oblige d'utiliser ASSUME,
    mais si on utilise plus d'un segment (DS) pour ses donnees, et que l'on oublie
    de preciser que le segment a utiliser en est un autre (FS ou GS par exemple)
    la directive ASSUME permettra a l'assembleur de faire le rapprochement
    et d'utiliser le bon registre de segment ...

    a+ Francois

Discussions similaires

  1. remplacer un texte d'un bouton par une icone
    Par Wassim123 dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 06/02/2009, 11h34
  2. Comment remplacer le nom d'un controle par une chaine ?
    Par roico dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/04/2007, 12h49
  3. Réponses: 5
    Dernier message: 14/12/2006, 17h50
  4. Adresser un contrôle par une variable
    Par zedude33 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 29/11/2006, 00h23
  5. [C#] Remplacer les boutons d'un DataGrid par une image
    Par PascalL dans le forum Windows Forms
    Réponses: 17
    Dernier message: 04/04/2005, 17h07

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