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 :

Afficher valeur d'un registre


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut Afficher valeur d'un registre
    Bonjour j'ai écrit un programme qui calcule la somme de tout les diviseurs de 3 et de 5 en dessous de 1000.
    Je pense l'avoir réussi cependant je n'arrive pas à afficher la valeur calculée , elle se trouve dans ebx ...
    Je fais de l'assembleur 8086 en nasm sous linux 32bits ...


    voici mon code , il ne manque plus qu'à afficher la valeur contenue dans ebx mais je n'ai vraiment aucune idée de comment le faire , je n'ai rien trouvé pour m'aider ...

    Code asm : 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    extern printf
    extern putc
     
     
    section .text
    	global main
     
    main:
     
    	mov ecx,3
     
    	mov esi,3
    	mov edi,5
     
    	xor ebx,ebx ; sum 
     
    boucle:
    	mov eax,ecx
    	xor edx,edx
    	div esi
    	test edx,edx ; teste le reste
    	je yes
     
    	mov eax,ecx
    	xor edx,edx
    	div edi
    	test edx,edx
    	jne no
     
    yes:
    	add ebx,ecx
    no:		
    	inc ecx
    	cmp ecx,1000
    	jne boucle
     
    finboucle:
     
    	mov eax,1
    	mov ebx,0
    	int 0x80

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Si vous voulez afficher le contenu binaire de registre EBX (10100011111111111), voir cette discussion : http://www.developpez.net/forums/d13...-registre-eax/.

    Si vous voulez afficher le contenu de EBX en décimal (0..9) voir cet exemple : http://asm.developpez.com/cours/gas/#LV-A.

  3. #3
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    je veux effectivement afficher le contenu de ebx en décimal .
    Sur le lien que tu m'as donnée c'est bien l'etape 4 "Étape 4 : afficher la liste triée" qui correspond à ce que je veux faire non ?

    Merci beaucoup !

  4. #4
    Invité
    Invité(e)
    Par défaut
    Oui, c'est l'étape 4

  5. #5
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    je n'arrive pas à comprendre et adapter ce code ...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Salut,

    L'exemple est très simple et bien expliqué. Le code source est écrit en assembleur GNU ayant une syntaxe différente de celle de nasm.

    Donc tu doit juste comprendre le principe de conversion d'une valeur stocké à la mémoire ou dans un registre en décimal puis en codes ASCII (pour chacun des des ses chiffres) et tout va bien

    Lisez attentivement la section : http://asm.developpez.com/cours/gas/#LII

    Bon chance.

  7. #7
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    finalement j'ai utilisé la fonction printf de la libc ...
    J'essayerais de comprendre ce que vous m'avez envoyer ce soir !

    Merci beaucoup pour l'aide .

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

Discussions similaires

  1. Afficher valeur vector sans doublon
    Par splouf dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 18/12/2006, 16h02
  2. [PHP-JS] Afficher valeur booleen
    Par taki_38 dans le forum Langage
    Réponses: 3
    Dernier message: 13/07/2006, 11h02
  3. Réponses: 5
    Dernier message: 03/10/2005, 18h01
  4. afficher valeur de max()
    Par bobic dans le forum ASP
    Réponses: 2
    Dernier message: 07/09/2005, 14h00
  5. Lire une valeur dans le registre
    Par John.s dans le forum C
    Réponses: 2
    Dernier message: 26/11/2003, 19h55

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