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

Assembleur Discussion :

Créer une procédure de comparaison de deux chaînes de caractères


Sujet :

Assembleur

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Créer une procédure de comparaison de deux chaînes de caractères
    Salut à tous ! J'ai un gros problème, je dois rendre un exercice en Assembleur mais je suis totalement coincé pour traduire le programme suivant :
    Code C : 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
    /* procedure comparerChaine */
     
    #include "chaine.h"
     
     
    int comparerChaine (const ChaineDyn ch1, const ChaineDyn ch2)
    {
    	char * ptrCh1;
    	char * ptrCh2;
    	int i;
    	int res = 0;
    	ptrCh1 = ch1.ptrCar;
    	ptrCh2 = ch2.ptrCar;
    	/*deplacement dans les 2 chaines*/
    	for (i=0; i <= ch1.nbCar && i <= ch2.nbCar && res == 0; i++)
    	{
    		/* comparaison de l'element pointe en cours*/
    		if ((*ptrCh1)>(*ptrCh2))
    		{
    			res=1;
    		}
    		else 
    		{
    		if ((*ptrCh1)<(*ptrCh2))
    				{
    					res=-1;
    				}
    			else
    			{ 
    			ptrCh2++;
    			ptrCh1++;
    			}	
    		}
    	}
    return (res);
    }
    Si vous pouviez me donner un coup de main ça ne serait pas de refus, merci !!!!

  2. #2
    Membre habitué
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Points : 166
    Points
    166
    Par défaut
    Bonjour,

    si j'ai bien compris ce code non indenté, cette fonction boucle tant que les octets des deux chaînes sont égaux et retourne à la moindre différence?

  3. #3
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 944
    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 944
    Points : 59 431
    Points
    59 431
    Billets dans le blog
    2
    Par défaut
    Bonjour et bienvenue !

    Tu peux t'inspirer de cet exemple, qui retourne comme résultat dans eax :
    • <0 si Ch1 < Ch2
    • 0 si Ch1 = Ch2
    • >0 si Ch1 > Ch2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    cld
    mov     edi,Ch2
    mov     esi,edi
    or      ecx,-1
    xor     eax,eax
    xor     edx,edx
    repne   scasb
    not     ecx
    mov     edi,esi
    mov     esi,Ch1
    repe    cmpsb
    mov     al,[esi-1]
    mov     dl,[edi-1]
    sub     eax,edx

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut reponse a stormi ordos
    c'est exact alors peux tu m'aider

  5. #5
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    moi je trouve qu'Alcatîz t'a deja beaucoup aide
    (le programme est tout fait ! )

    a+ Francois

Discussions similaires

  1. Créer une procédure stockée sous MySQL avec phpmyadmin
    Par Jordan59 dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 17/08/2011, 14h08
  2. Réponses: 1
    Dernier message: 18/04/2007, 23h02
  3. Comparaison entre deux chaînes
    Par fifi87 dans le forum Assembleur
    Réponses: 2
    Dernier message: 12/12/2006, 20h55
  4. Créer une table a partir de deux tables existantes
    Par Aguiran dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/12/2006, 08h16
  5. Créer une procédure stockée depuis Delphi
    Par blonde dans le forum Bases de données
    Réponses: 10
    Dernier message: 10/03/2006, 11h26

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