Salut à tt
Pour trier un tableau, il faut 2 boucles, enfin moi j'aurais utilisé 2 boucles.
Salut à tt
Pour trier un tableau, il faut 2 boucles, enfin moi j'aurais utilisé 2 boucles.
Pas nécessairement, tout dépend du nombre de dimensions de ton tableau et du type de tri à effectuer.Envoyé par SaladinDev
Did2604.
Pour les 2 boucles, c'est pour parcourir et tester je sais pas comment tu l'expliques en ASM. Je suis en train d'ecrire le code mais ça marche pas. J'ai plein d'erreurs de syntaxe parce que je débute encore.
je vais t'ecrire le code en algo:
Si je règle mon problème en asm je le poste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 pour i de 1 à la fin du tableau -1 faire pour j de i+1 à la fin du tableau faire si T[j]<T[i] alors permuter(T[i],T[j])
Voilà ce que j'ai pu faire, j'ai plein d'erreurs de syntaxe, si vous pouviez m'aider à les résoudre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 .586 .MODEL Flat, STDCALL .DATA TAB db "12","5","0","10","16" TEMP db 0 .CODE DEBUT:MOV SI,offset TAB ; si pointe sur le debut du tableau MOV [DI],[SI+1] COM:CMP TAB[SI],TAB[DI] JL PERMUTE CMP TAB[DI], TAB[offset TAB +4] JE COM2 INC DI JUMP COM COM2:CMP [SI],offset [TAB+4] JE AFFICHAGE INC SI MOV [DI],[SI+1] PERMUTE:MOV TEMP,TAB[DI] MOV TAB[DI],TAB[SI] MOV TAB[SI],TAMP JUMP COM AFFICHAGE:MOV si,offset TAB MOV AH,TAB[SI] COM2 si,offset [TAB+4] JE FIN MOV DL,AL MOV AH,2 INT 21H INC SI JUMP AFFICHAGE FIN:MOV AH,4CH INT 21H ENDS end DEBUT
Quoi comme erreurs.... ?j'ai plein d'erreurs de syntaxe
Did2604.
Bonjour !
L'instruction CMP nécessite au moins une opérande dans un registre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part CMP TAB[SI],TAB[DI]
C'est JMP !
Code : Sélectionner tout - Visualiser dans une fenêtre à part JUMP
?!? COM2 : connais pas cette instruction
Code : Sélectionner tout - Visualiser dans une fenêtre à part COM2 si,offset [TAB+4]
Sans vouloir te vexer, je crains qu'il te manque les bases de l'Assembleur. Tu peux consulter le tutoriel de Benoit-M :
http://benoit-m.developpez.com/assembleur/tutoriel/
Sinon, tâtonner sans comprendre ne t'apportera pas grand chose.
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
Oui ça se vois que je debut .
j'ai poste mon code un peu trop vite.
je vais essaye de revenir avec un autre code .
Mais alors pour comparer 2 cases de mon Tableau je fais comment :
CMP TAB[SI],TAB[DI]
Mais alors pour comparer 2 cases de mon Tableau je fais comment ?Tu ne peux pas faire deux accès en même temps en mémoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MOV AX,TAB[SI] CMP TAB[DI],AX
Did2604.
Connaissais pas... Je viens de me renseigner sur cette instruction et effectivement elle permet un double accès en mémoire au même moment. Merci de l'avoir signalé !
Did2604.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager