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 16-bits Assembleur Discussion :

Questions de débutant nasm


Sujet :

x86 16-bits Assembleur

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Questions de débutant nasm
    Bonjour à tous ! je débute en assembleur avec nasm et j'ai qques questions :
    1. quand on fait par ex :
    en mode réel, on envoie l'adresse de truc ou juste son offset?
    parce que ca :
    ne marche pas...

    2.Faut-il mieux utiliser l'instruction LEA ?
    Merci d'avance !

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 104
    Points
    43 104
    Par défaut
    va charger 5 dans ax
    va charger le contenu de l'adresse 5 dans ax oiu plus précisément le contenu de DS:5.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut
    mov ax, truc

    en mode réel, on envoie l'adresse de truc ou juste son offset?
    quel est pour toi la différence entre offset et adresse? parce que pour moi l'adesse c'est: segment:offset
    ax étant un registre 16 bit il ne peu que reçevoir un segment ou un offset, et dans ton cas c'est un offset

    par contre si dans ton code tu as:
    cela signifie que truc est une constante et qu'as la compilation truc sera remplacé par 10 (selon l'exemple)

  4. #4
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Ok, merci bien pour ces réponses !
    Du coup, j'ai essayé d'écrire un programme qui demande une chaine de caractère et l'affiche, mais cela ne fonctionne pas...
    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
    24
    25
    26
    27
    org 0x100
     
    mov dx, a
    mov ah, 0x9
    int 0x21    			;message d'acueil 
     
    mov dx, c
    mov ah, 0xa
    int 0x21    			;saisie de la chaine
     
    mov bx, [c+1] 			;avec la fonction 0xa, la taille de la chaine est contenue dans c+1  
    						;on met dans bx l'adresse de la fin de la chaine
    mov byte [bx], '$' 		;on  met $ à la fin de la chaine
     
    mov dx, b
    mov ah, 0x9
    int 0x21				;affiche la chaine b
     
    mov dx, c+2
    mov ah, 0x9
    int 0x21				;affiche la chaine entrée
     
    ret
     
    a: db "Entrez votre nom : $"
    b: db 10, 13, 10, 13, 10, 13, "Vous vous appellez : $"
    c: db 50

  5. #5
    Membre confirmé Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Points : 550
    Points
    550
    Par défaut
    ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mov bx, [c+1] 			;avec la fonction 0xa, la taille de la chaine est contenue dans c+1  
    						;on met dans bx l'adresse de la fin de la chaine
    mov byte [bx], '$' 		;on  met $ à la fin de la chaine
    il faut mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    mov bh,0
    mov bl, [c+1] 			;avec la fonction 0xa, la taille de la chaine est contenue dans c+1  //ok mais c'est un octet et pas un mot
    						;on met dans bx l'adresse de la fin de la chaine //non c'est le nombre d'octet de la chaine qui est dans bx,
    add bx,c+2              ;//il faut faire adress de debut de la chaine+longeur de la chaine pour avoir l'adresse de la fin de la chaine
    mov byte [bx], '$' 		;on  met $ à la fin de la chaine

  6. #6
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup ! Sujet résolu !

  7. #7
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 104
    Points
    43 104
    Par défaut
    Penses à clôturer avec l’icône résolu.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 23/06/2005, 10h56
  2. question de débutant sur les objets
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 06/08/2004, 10h51
  3. [MFC] Quelques questions de débutant...
    Par Sephi dans le forum MFC
    Réponses: 4
    Dernier message: 20/02/2004, 17h25
  4. Questions de débutant
    Par J-P-B dans le forum XMLRAD
    Réponses: 12
    Dernier message: 24/07/2003, 15h19
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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