Correction d'un code

marooh Messages postés 122 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 16 novembre 2011 - 2 janv. 2011 à 15:26
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 - 8 févr. 2011 à 22:31
bonjour,j'ai écrit un code assembleur qui permet de comparer deux tableaux,ce code je veux l'inserer dans un code c.
si vous pouvez bien me le corriger et j'ai une question à poser: je veux en cas d'egalité ecrire un truc que je pourrais utiliser aprés dans le code c qui affirme qu'il y a egalité pour faire qqes traitements
voici le code:
mov bx, 0;


outer_loop:
                 Mov cx,taille;

inner_loop:
                 mov ax, [Aux+bx];
                Cmp ax, [itemset+bx];
                je Element_is_Equal;


Element_is_Equal:
                                    Add bx, 2;
                                    cmp bx,taille;
                                    jne inner_loop;

43 réponses

cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
7 janv. 2011 à 11:40
salut,

Use -fleading-underscore and/or -fno-leading-underscore to get the behaviour you want.

@++
0
marooh Messages postés 122 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 16 novembre 2011
7 janv. 2011 à 19:09
re,
oui ma fonction dans le fichier asm s'appelle _compar mais l'erreur persiste.
@patatalo: je n'ai pas compris ce que vous avez écrit
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
7 janv. 2011 à 19:59
Ca veut dire qu'il y a une option pour mettre ou ne pas mettre l'underbarre.

si ton compilo est gcc, les options citées sont celles qui t'interessent. Sinon, regarde les options de compilation de ton compilo pour voir comment elle se déclare cette option.
0
marooh Messages postés 122 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 16 novembre 2011
7 janv. 2011 à 21:50
re,
merci mais j'ai finalement trouvé ce qui cloche:c'est le code que j'ai ajouté à code blocks pour prendre en compte l'asm donné par ghuysmans99:tasm -f win32 -o $object $file
ça marche pas malgré que j'ai mis tasm dans le path
donc je vais essayé de faire un autre truc: assembler le code asm par tasm et lier le fichier obj.est-ce que c'est possible??si oui,comment linker le fichier obj??
0

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

Posez votre question
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
8 janv. 2011 à 00:04
N
ASM pas TASM ...

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
marooh Messages postés 122 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 16 novembre 2011
8 janv. 2011 à 01:40
re,
oui je sais mais j'ai changé car j'utilise tasm.ça marche pas avec tasm?ça marche qu'avec nasm?
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
8 janv. 2011 à 01:43
Eh oui ... TASM est un compilo 16 bits et pas 32, donc pas foutu de faire un fichier Win32 obj

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
marooh Messages postés 122 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 16 novembre 2011
8 janv. 2011 à 01:48
re,
il existe tasm32
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
8 janv. 2011 à 09:42
Mais pas exactement la même syntaxe que NASM.

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
8 janv. 2011 à 18:39
re,


Renseignes toi sur yasm, de ce que j'ai lu, il accepte plusieurs language assembleur (masm,tasm et nasm)

@++
0
marooh Messages postés 122 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 16 novembre 2011
8 janv. 2011 à 22:59
re,
j'ai installé nasm dans le dossier de code blocks mais ça ne marche pas!!!!!
ce truc ma rendre fou
0
marooh Messages postés 122 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 16 novembre 2011
8 janv. 2011 à 23:01
je me suis trompé j'ai mis dans le dossier du projet!!!et ça marche pas
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
8 janv. 2011 à 23:58
... et là je m'aperçois que j'avais oublié de dire de le mettre dans le dossier Windows

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
marooh Messages postés 122 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 16 novembre 2011
9 janv. 2011 à 01:18
re,
chose faite mais ça marche pas non plus :((((
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
9 janv. 2011 à 01:27
Je peux pas savoir ce qui se passe mal ... Qu'obtiens-tu comme message d'erreur ?

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
marooh Messages postés 122 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 16 novembre 2011
9 janv. 2011 à 01:33
je peux vous envoyer le code par mp??
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
9 janv. 2011 à 01:44
OK, pas de problème

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
marooh Messages postés 122 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 16 novembre 2011
7 févr. 2011 à 23:23
re,
j'ai écrit le code qui permet de chercher un ensemble entré au debut dans une base mais ça ne marche pas!!ça compile mais ça ne fonctionne pas
voici le code


SEGMENT .code

GLOBAL _compar
_compar:
push ebp
mov ebp, esp
mov eax,dword[ss:esp+16]
cmp eax,dword[ss:esp+12]
jl fin
xor ebx, ebx
outer_loop:
xor esi,esi
inner_loop:
mov ebx,dword[ss:esp+08]
cmp ebx,dword[ss:esp+04]
jne isdifferent
add ebx, 2
cmp ebx,dword[ss:esp+12]
jne outer_loop
xor eax,eax
pop ebp
ret
isdifferent:
add esi,2
cmp esi,dword[ss:esp+16]
jl inner_loop
fin:
mov eax,1
pop ebp
ret

et bien entendu ce code est utilisé dans un code c
je l'ai appelé comme suit
if (compar(taille,a,aux,t)==0)
{printf ("il ya egalité dans la ligne%d",f);
nbr++;

je ne trouve pas l'erreur!!merci d'avance
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
8 févr. 2011 à 19:18
Pas besoin de te faire un stackframe, tu t'en sers quand même pas. Mais par contre c'est une mauvaise idée de massacrer les registres (sauf EAX)

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
marooh Messages postés 122 Date d'inscription vendredi 8 octobre 2010 Statut Membre Dernière intervention 16 novembre 2011
8 févr. 2011 à 19:35
re,
quelles sont les modifications à faire svp??!!! je suis vraiment à bout,j'ai passé un temps enorme pour essayer de faire fonctionner ce petit code asm avec le code c et pas de solutions!!
0
Rejoignez-nous