probleme en assembleur

probleme en assembleur - ASM - Programmation

Marsh Posté le 03-02-2011 à 10:52:43    

comment comparer 2 tableau de bits de meme taille avec le tasm  par exemple 000001 et 100001 en utilisant le ET ?

Reply

Marsh Posté le 03-02-2011 à 10:52:43   

Reply

Marsh Posté le 03-02-2011 à 12:11:33    

Je veux bien vous donner la solution, mais avant je voudrais vous faire remarquer qu'il faut mettre une majuscule à la première lettre du premier mot de chaque phrase.
 
AND positionne des flags, qui permettent de savoir si le résultat est nul, s'il est positif ou négatif, etc.
 
Comme il s'agit de deux nombres, il faudrait au préalable faire une soustraction (voilà peut-être l'astuce qui vous manquait, car je suppose que tout ce que veut le prof, c'est éviter l'instruction CMP, ce qui n'exclut pas l'instruction SUB).
Le AND qui sera appliqué au résultat permettra de savoir s'il est nul, positif ou négatif, indiquant donc si les nombres initiaux sont égaux, ou si le premier est supérieur ou inférieur au second. Pour que le AND marche, il faut choisir un octet dont la valeur ne va pas altérer le résultat. Là, je vous laisse réfléchir.
Et même, on n'est pas obligé de choisir un octet littéral, ce qui permet d'aller un chouia plus vite. Je vous laisse encore réfléchir.
On peut fait aussi cela avec l'instruction OR ou XOR, ou TEST.
 
Mais ce AND (ou OR ou XOR) est inutile car SUB positionne déjà les flags. Donc, il vous est peut-être aussi interdit d'utiliser SUB. Dans ce cas, il faudrait procéder avec une suite de AND pour tester chaque bit de chaque octet, et faire un JNZ dérriere chaque AND. Mais là c'est utiliser un marteau pilon pour écraser une mouche.

Reply

Marsh Posté le 03-02-2011 à 13:20:45    

est-ce que la taille de ces tableaux de bits doit être variable ? Quel est le contexte de la demande et dans quelle mesure n'est-ce pas directement le copier/coller d'un énoncé ?


---------------
last.fm
Reply

Marsh Posté le 03-02-2011 à 14:21:54    

nn la taille de ces tableaux n'est pas variable.En réalité le vrai enoncé est:
1)saisir un ensemble d'identifiants dont la valeur maximale est égale à 31 et de générer la représentation en tableau de bits de cet ensemble ds une variable de taille 4 octets en mémoire nommée Itemset(à developper en langage C)
2)saisir une série de 100 ensembles d'identifiants au plus respectant la contrainte mentionnée dans (1).Cette série sera nommée par la suite "base".cette fct doit etre développeé en C
3)afficher les indices et le nombre d'emsembles de base contenant Itemset.cette fct doit etre developpée en C et en assembleur
mon idée pour la 3eme question et de transformer les ensembles des identifiants en des tableaux de bits pour les comparer s'ils sont égaux ou nn ? est ce que c'est juste ou nn ?peux je utiliser le "Et" pour comparer les tableaux de bits?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed