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?

    Dans la vie, il y a 10 sortes de personnes. Ceux qui comprennent le binaire et les autres...


  3. #3
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 938
    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 938
    Points : 59 416
    Points
    59 416
    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
    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]

  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