1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2010
    Messages : 105
    Points : 133
    Points
    133

    Par défaut registre DX et les adresses

    salut
    j'ai lu dans un article un code hello word avec les instructions suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    mov  DX, hello ; 
    .....
    ....
     
    hello        db 13,10,'Hello World.',13,10,'$' ;
    ici , il a mis l'adresse de hello dans DX.
    ce que je comprend pas c'est comment on peut utiliser le registre DX avec les adresse ?
    merci

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    7 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 7 477
    Points : 16 081
    Points
    16 081

    Par défaut

    La question ne veut rien dire.

    Que veux tu faire ?
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2010
    Messages : 105
    Points : 133
    Points
    133

    Par défaut

    Je veux afficher le contenu de la variable hello
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    mov  DX, hello 
    mov  AH, 0x9  
    int  0x21    
    ret
    hello        db 'Hello World.'
    le code fonctionne mais comment on a pu mettre l'adresse de hello dans Dx
    normalement on devait utiliser un autre registre pour les adresse comme par exemple le registre SI

  4. #4
    Expert éminent
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    2 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 2 119
    Points : 6 051
    Points
    6 051

    Par défaut

    Citation Envoyé par je viens du sud Voir le message
    le code fonctionne mais comment on a pu mettre l'adresse de hello dans Dx
    Pas forcément , je te rappel que ici hello est un label donc une valeur.
    on gros tu peux très bien écrire mov dx,5423 ton programme assembleur va traduire ton hello par la valeur correspondant a l'adresse de hello dans ton binaire (sauf si t'as le courage de compter les nombre d'opcode ).

    normalement on devait utiliser un autre registre pour les adresse comme par exemple le registre SI
    Les registre d'adresse sont spécifique si tu veux jouer avec des pointeurs , en soit tu peux mettre une adresse dans n'importe quel registre

    La distinction du type de registre vient surtout de ce que on peut en faire ( un accumulateur pourra faire des calcul avancé) alors que les registres d'adresse sont plus limité mais possède des instruction spécifique pour la manipulation de pointeur , bref le mettre dans DX n'est pas un probleme dans ton cas !
    De nos jours il me semble que les registres sont assez généraux (peuvent servir de registre d'adresse , comme d'index ou d'accumulateur).

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    7 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 7 477
    Points : 16 081
    Points
    16 081

    Par défaut

    Il faut comprendre que tu vas utiliser une fonction du système d'exploitation qui dans le cas de MS-DOS attend pour fonctionner des valeurs précises dans des registres précis. Peut importe l'usage standard des registres.

    Et dans certains CPU, autres que x86, les registres ne sont pas "typés" et dédié à tel ou tel usage (mis à part les registres de contrôle).

    Et dans d'autres OS, le passage de paramètres aux fonctions systèmes se fait différemment. Exemple :

    Sous Windows : empilement des paramètres dans l'ordre attendu
    Sous Linux : numéro de fonction système dans eax (l'équivalent du contenu de ah pour MS-DOS), puis les paramètres dans ebx, ecx, edx, esi, edi
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    7 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 7 477
    Points : 16 081
    Points
    16 081

    Par défaut

    De nos jours il me semble que les registres sont assez généraux (peuvent servir de registre d'adresse , comme d'index ou d'accumulateur).
    Sur x86, c'est un plus compliqué que ça. Certains mnémoniques sont liés à des registres précis lodsb stosb et utilisent les registres d'index si et di. Par contre la fonction mov est plus souple et peut utiliser tous les registres (hors registres de segment bien sûr) exemple mov ax,[bx]. La fonction loop va décrémenter cx (le registre compteur), mais il est tout à fait possible de faire une boucle avec les fonctions de sauts (c'est même recommandé loop nécessitant beaucoup de cycles de mémoire). Je ne sais pas si utiliser n'importe quel registre joue sur le temps de traitement. Les multiplications et divisions utilisent ax et dx, exemple mul cx signifie multiplication de ax par cx, et le résultat sera stocké dans ax:dx.

    Mais sur le fond, je pense que tu as raison, le cas du x86 est un cas particulier, c'est un CPU qui a 40 ans. Les dernières générations restent compatibles avec les modèles d'il y a 40 ans.

    Et l'autre grande gamme utilisée actuellement, les processeurs ARM par exemple, il y a 11 registres généraux r0 à r10 et des registres de contrôle (exemple pour ARMv6, sur les gammes suivantes il y a probablement plus de registres généraux). Pour les calculs on indique les registres sources et destination dans l'instruction, n’importe quel des registres généraux.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

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

Discussions similaires

  1. obtenir les adresses ip des machines d'un domaine?
    Par Shypster dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/02/2006, 12h44
  2. connaitre les adresses IP des contacts sur msn
    Par starway dans le forum Messagerie instantanée
    Réponses: 6
    Dernier message: 28/10/2005, 21h39
  3. Cherche à lister les adresses IP dispo sur la machine
    Par yukkyyuk dans le forum Windows
    Réponses: 3
    Dernier message: 16/03/2005, 12h50
  4. Comment récupérer les adresses WWW dans Internet Explorer ?
    Par chaours dans le forum Web & réseau
    Réponses: 7
    Dernier message: 03/09/2003, 15h27
  5. peut on filtrer les adresses IP ?
    Par travail dans le forum 4D
    Réponses: 2
    Dernier message: 04/06/2003, 15h16

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