Programmation assembleur aidez moi!!!!!

Fermé
nour-2008 Messages postés 7 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 2 mai 2010 - Modifié par nour-2008 le 30/04/2010 à 19:47
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 - 22 mai 2010 à 10:19
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

ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 339
30 avril 2010 à 20:11
Qu'est-ce que tu as déjà fait ?
0
nour-2008 Messages postés 7 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 2 mai 2010
1 mai 2010 à 11:37
J'ai essayé beaucoup et Je ne pouvais pas déterminer la bonne réponse


Aidez-moi
0
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 339
1 mai 2010 à 14:47
Tu bloques au niveau de l'algo ou de la prog assembleur ? Sur quel point ?
0
nour-2008 Messages postés 7 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 2 mai 2010
1 mai 2010 à 21:30
non en algo non mais au niveau de la prog assembleur aidez moi SVP
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 339
2 mai 2010 à 00:41
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
nour-2008 Messages postés 7 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 2 mai 2010
Modifié par nour-2008 le 2/05/2010 à 12:11
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
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 339
2 mai 2010 à 14:09
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
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 339
2 mai 2010 à 15:10
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
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 339
2 mai 2010 à 16:42
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
nour-2008 Messages postés 7 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 2 mai 2010
2 mai 2010 à 14:31
Ok merci mais j'aime la traduction en assembleur mais pas avec pointeur en tout cas merci beaucoup.
0
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 339
2 mai 2010 à 15:03
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
nour-2008 Messages postés 7 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 2 mai 2010
2 mai 2010 à 15:35
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
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 339
2 mai 2010 à 16:44
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
nour-2008 Messages postés 7 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 2 mai 2010
Modifié par nour-2008 le 2/05/2010 à 19:04
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
aymenskills Messages postés 9 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 4 juin 2011
21 mai 2010 à 12:44
SVP moi aussi je cherche une bonne solution sans faire d'erreur pour cet exercice...
0
aymenskills Messages postés 9 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 4 juin 2011
21 mai 2010 à 12:57
M. "ghuysmans99" J'ai également un problème avec cet exercice, s'il vous plaît nous aider à résoudre
0
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 339
22 mai 2010 à 10:19
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