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 :

[GAS] Afficher à l'écran le contenu d'une adresse en mémoire


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 74
    Points : 53
    Points
    53
    Par défaut [GAS] Afficher à l'écran le contenu d'une adresse en mémoire
    Je cherche un programme qui me permet d'afficher une valeur d'une variable stockée dans la mémoire sur écran.
    je suis sous linux et j'utilise l'Assembleur gas.
    merci pour votre aide

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 74
    Points : 53
    Points
    53
    Par défaut
    voici le code de quoi je parle :
    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
    .data
    number : .long	0  # je déclare une variable de type long
    .text
    .globl _start
    _start:
    movl	$3, %eax
    movl	$0, %ebx
    movl	$number, %ecx #je place l adresse où je veux récupérer le nombre que je vais entrer
    movl $2, %edx            #le nombre de caracère à récupérer est 2, pour le test seulement
    addl	$1, number         #j ajoute 1 au nombre entré
    #affichage du résultat
    movl $4, %eax
    movl $1, %ebx
    movl $number, %ecx
    movl $2, %edx
    movl	$1, %eax
    movl	$0, %ebx
    int $0x80
    Bon, la compilation passe sans aucun problème, mais quand j'éxecute le programme, ne me donne ni l'occasion pour écrire ce que je veux, ni l'affichage de n'importe quoi.
    Une aide SVP

  3. #3
    Responsable Pascal, Lazarus et Assembleur


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

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 414
    Points
    59 414
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Il y a plusieurs problèmes à résoudre.

    Tout d'abord, la directive .globl devrait être .global.
    Ensuite, le programme n'affiche rien car l'interruption 0x80 est appelée une seule fois, avec la fonction $1, pour terminer le programme. Il faut bien sûr l'exécuter pour l'affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #affichage du résultat
    movl $4, %eax
    movl $1, %ebx
    movl $number, %ecx
    movl $2, %edx
    int $0x80   # <--- À rajouter !
    # Fin du programme
    movl	$1, %eax
    movl	$0, %ebx
    int $0x80
    Enfin, pour afficher des nombres à l'écran, il faut les convertir en caractères affichables. Pour te mettre sur la voie, regarde dans ce tutoriel comment s'effectue l'opération inverse : http://asm.developpez.com/cours/gas/#LV-A-2.

    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]

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

Discussions similaires

  1. Afficher des fils de contenu dans une page
    Par Publicnew dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/04/2015, 19h05
  2. Afficher et modifier le contenu d'une table
    Par JustBeFree dans le forum BIRT
    Réponses: 9
    Dernier message: 03/03/2015, 16h37
  3. Afficher et modifier le contenu d'une grille
    Par tiboleo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 31/03/2010, 10h49
  4. Réponses: 2
    Dernier message: 06/10/2009, 13h13
  5. Afficher et modifier le contenue d'une table sql
    Par DeWaRs dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/01/2009, 20h36

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