Programmation assembleur aidez moi!!!!!

c'est un petit exercice que je veux traduire en programmation assemnleur8086 aidez-moi s'il vous plais

Exercice
ecrire un programme qui permet de chercher une chaine de caractére {info2010} dans un
tableau de 100h caractére
Questions
-Donner l'organigramme decet exercice (assembleur8086)
-Donner ensuite leur code (en assembleur 8086).

et merci

15 réponses

  1. Contributeur
    Qu'est-ce que tu as déjà fait ?
    0
    1. J'ai essayé beaucoup et Je ne pouvais pas déterminer la bonne réponse

      Aidez-moi
      0
      1. Contributeur
        Tu bloques au niveau de l'algo ou de la prog assembleur ? Sur quel point ?
        0
        1. non en algo non mais au niveau de la prog assembleur aidez moi SVP
          0
          1. Contributeur
            Donne ton algo et je te donnerai des pistes (et non je ne te ferai pas ton exo à ta place mais je t'expliquerai ce que tu ne comprends pas)
            0
            1. ok merci solu en algo est simple :


              pour i de 1 à n faire
              pour j de 1 à long(ch) faire
              si T[i]=ch[j] alors
              ecrire ("la caractére trouee est ",ch[j])
              sinon
              ecrire ("pas de caractére touvee")
              fin si
              fin pour
              fin pour
              0
              1. Contributeur
                Ton algo n'est déjà pas bon ... en C ça donnerait ça :
                char* trouve (char* buf, char* texte)
                {
                 int l = strlen(texte);
                 char* end = buf+0x100;
                 while (buf < end)
                 {
                  if (memcmp(buf,texte,l)==1) return buf;
                  buf++;
                 }
                 return null;
                }

                Tu n'as plus qu'à traduire ça en ASM
                0
                1. Contributeur
                  Petite erreur : remplace cette ligne
                  if (memcmp(buf,texte,l)==1) return buf;

                  Par celle-ci :
                  if (memcmp(buf,texte,l)==0) return buf;
                  0
                2. Contributeur
                  Encore une modification pour plus de lisibilité :
                  char* trouve (char* buf, size_t bufLen, char* text)
                  {
                  	int l = strlen(text);
                  	char* end = buf+bufLen-l+1;
                  	while (buf < end)
                  	{
                  		if (memcmp(buf,text,l)==0)
                  			return buf;
                  		buf++;
                  	}
                  	return NULL;
                  }
                  0
              2. Ok merci mais j'aime la traduction en assembleur mais pas avec pointeur en tout cas merci beaucoup.
                0
                1. Contributeur
                  De l'ASM sans pointeurs qui compare une partie de buffer et une chaine ... Tu déconnes ou quoi ?! Montre ce que tu as déjà traduit.
                  0
                  1. Je ne comprends pas ce que vous entendez par (memcmp)
                    cmp=comparaison et mem quoi et je crois que l'algo et comme ca:

                    int l = strlen(texte);
                    char* end = buf+0x100;
                    while (buf < end)
                    {
                    if (memcmp(buf,texte,l)==0)

                    return nul;
                    buf++;

                    else
                    {
                    return buff;

                    }
                    parceque 0 pas de caractére il retourne nul oui ou non ?
                    0
                    1. Contributeur
                      L'algo que je t'ai donné est fonctionnel (je l'ai testé), donc pas besoin de le modifier. Le prototype est int memcmp (const void *s1, const void *s2, size_t n);. Incorpore cette fonction dans cherche() pour plus de vitesse.
                      0
                      1. Je vous remercie et je suis nouvelle d'apprendre cette langage machine et mon professeur en charge d'eux n'est pas en excellente ou en spécialisation de cet article.Je vais essayer demain avec mes amis, Et essayer de vous donner solution.
                        M'aidé à obtenir le résultat correct
                        0
                        1. SVP moi aussi je cherche une bonne solution sans faire d'erreur pour cet exercice...
                          0
                          1. M. "ghuysmans99" J'ai également un problème avec cet exercice, s'il vous plaît nous aider à résoudre
                            0
                            1. Contributeur
                              Si t'as pas envie de te fatiguer, utilise un compilateur C pour compiler la fonction que je t'ai donnée. Y'en a pour systèmes 16 bits, comme par exemple Digital Mars.
                              0