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. J'ai essayé beaucoup et Je ne pouvais pas déterminer la bonne réponse

    Aidez-moi
    1. Contributeur
      Tu bloques au niveau de l'algo ou de la prog assembleur ? Sur quel point ?
      1. non en algo non mais au niveau de la prog assembleur aidez moi SVP
        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)
          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
            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
              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;
              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;
                }
            2. Ok merci mais j'aime la traduction en assembleur mais pas avec pointeur en tout cas merci beaucoup.
              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.
                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 ?
                  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.
                    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
                      1. SVP moi aussi je cherche une bonne solution sans faire d'erreur pour cet exercice...
                        1. M. "ghuysmans99" J'ai également un problème avec cet exercice, s'il vous plaît nous aider à résoudre
                          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.