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 :

[NASM 64 bits][Linux] Déterminer la taille d'une chaîne de caractères


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre averti

    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2012
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 313
    Points : 354
    Points
    354
    Par défaut [NASM 64 bits][Linux] Déterminer la taille d'une chaîne de caractères
    Je suis en train de faire un petit programme de test pour tenter de copier les arguments passés en ligne de commande
    pour ensuite tenter de convertir ceux-ci en variables numériques...

    J'ai un soucis avec l'utilisation de stob et ecx qui contient 18 au lieu de 6...
    Pourtant il me semble que ces déclarations devraient indiquer au compilateur que szStringX devraient contenir la longueur de chaque chaîne... (je me demande d'ailleurs comment je vais procéder
    lorsque je vais récupérer cela de la ligne de commande, mais une chose à la fois...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    String1 db "arg1",10,0	
    	String2 db "arg2",10,0
    	String3 db "arg3",10,0
     
    	szString1 equ $-String1
    	szString2 equ $-String2
    	szString3 equ $-String3
     
    ...
     
           Array resb 255
    ...dans mon programme, lorsque je débugge, je me rends compte que ecx vaut 12h... (18)... ce qui équivaut à la longueur des trois chaînes plus leurs '\n' et leurs '\0'...

    rcx est évidemment décrémenté correctement mais je voudrais que la taille de la chaîne String1 soit correcte... ça m'aiderait beaucoup... Array devrait contenir non pas tous les arguments mais
    un argument à la fois.
    J'ai dans l'idée de traiter les arguments un à un en passant par Array... vu que j'ignore comment faire pour que Array soit en fait Array[3][255] en syntaxe C.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    mov ecx,szString1
    mov esi,String1							; String1 devrait être issu de la pile
    mov edi,Array
     
    mov r8,0										; on va se servir de r8 comme compteur
    cld													; clear direction flag
     
    copierdatas:
    	lodsb											; va charger un byte et le mettre dans al
    	stosb											; on va mettre le caractère de al dans Array
    	inc r8
    	loop	copierdatas

  2. #2
    Membre averti

    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2012
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 313
    Points : 354
    Points
    354
    Par défaut
    Autant pour moi... je me suis rappelé que le $ représente "l'endroit où on se trouve" dans le DS...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	String1 db "arg1",10,0	
    	szString1 equ $-String1
    	String2 db "arg2",10,0
    	szString2 equ $-String2
    	String3 db "arg3",10,0
    	szString3 equ $-String3
    ...c'est mieux !!

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/09/2018, 10h39
  2. Taille d'une chaîne de caractères
    Par walidos11 dans le forum Assembleur
    Réponses: 1
    Dernier message: 10/11/2010, 12h09
  3. La taille d'une chaîne de caractères
    Par looking_4truth dans le forum Débuter
    Réponses: 4
    Dernier message: 09/08/2010, 15h32
  4. Déterminer la taille d'une entête HTTP ??
    Par haffouff dans le forum Langage
    Réponses: 2
    Dernier message: 08/05/2006, 19h26

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