Programme qui compare 3 nombre assembleur
Fermé
Syd
-
27 oct. 2011 à 11:42
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 28 oct. 2011 à 07:20
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 28 oct. 2011 à 07:20
A voir également:
- Algorithme maximum de 3 nombres
- Picasa 3 - Télécharger - Albums photo
- Ai suite 3 download - Télécharger - Optimisation
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Photorecit 3 - Télécharger - Visionnage & Diaporama
- Code binaire des nombres - Guide
4 réponses
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
Modifié par nicocorico le 27/10/2011 à 13:12
Modifié par nicocorico le 27/10/2011 à 13:12
Tu as déclarées les variables V1, V2 et V3 en 'word' et tu les lis en 32 bits, le problème est sûrement là...
Et tu ne détailles pas la fonction 'ReadInt', mais le chargement de EAX, EBX et ECX avant son appel me semble pour le moins bizarre !
Le chêne aussi était un gland, avant d'être un chêne
Et tu ne détailles pas la fonction 'ReadInt', mais le chargement de EAX, EBX et ECX avant son appel me semble pour le moins bizarre !
Le chêne aussi était un gland, avant d'être un chêne
ca doit etre une erreur d'imcomprehension du cours alors donc je vais réessayer en declarant en DWORD et dappeller ReaInt avant de mettre les valeurs dans les régistres et je verrais
j'ai rééesayer mais je n'ai pas réussi tu pourrais me montrer en portion de code ce que tu me demande de cooriger stp?
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
Modifié par nicocorico le 28/10/2011 à 07:37
Modifié par nicocorico le 28/10/2011 à 07:37
Voilà, j'ai repris ton code avec explications, mais je n'utilise pas le même assembleur que toi donc j'espère que ça fonctionne ainsi, et je manque de temps donc je donne ici une piste, plutôt qu'un résultat exact, et je finaliserais dès que possible...
TITLE comparaison 3 nombres
INCLUDE IUTInfo.inc
.data
msg BYTE "entrez 3 nombre",0
msg2 BYTE "les trois nombres sont égaux",0
msg3 BYTE "les deux premières valeurs sont égales et plus grande que v3",0
msg4 BYTE "v1=v2 et v1<v3",0
msg5 BYTE " v1=v3 et supérieur a v2",0
msg6 BYTE "v1 est le plus grand",0
msg7 BYTE "v3 est le plus grand",0
v1 DWord
v2 DWord
v3 DWord
.code
main PROC
mov edx,OFFSET msg
call WriteString
call readint
mov V1,eax
call readint
mov V2,eax
call readint
mov V3,eax
Mov eax,V1
cmp eax,V2 ; compare les valeurs v1 et v2
jg cas ;si v1>v2
L1: ;Continue ici si elles sont égales
cmp eax,V3 ; compare les deux autres valeurs à v3
jg L3 ; saute vers L3 si les deux valeurs sont plus grandes que v3
jl L4 ; saute vers L4 si les deux valeurs sont plus petites que v3
L2: ; Continue ici si elles sont égales
mov edx, offset msg2
Jmp @FinWS
L3:
Mov EBX,10
call writeint
mov edx,offset msg3
Jmp @FinWS
L4:
mov eax,V3
Mov EBX,10
call writeint
mov edx,offset msg4
Jmp @FinWS
cas:
mov edx,offset msg6
cmp eax,V2
jg @FinWS
mov edx,offset msg7
jl @FinWS
mov edx,offset msg5
@FinWS:
call writestring
fin:
exit
main ENDP
END main
Le chêne aussi était un gland, avant d'être un chêne
TITLE comparaison 3 nombres
INCLUDE IUTInfo.inc
.data
msg BYTE "entrez 3 nombre",0
msg2 BYTE "les trois nombres sont égaux",0
msg3 BYTE "les deux premières valeurs sont égales et plus grande que v3",0
msg4 BYTE "v1=v2 et v1<v3",0
msg5 BYTE " v1=v3 et supérieur a v2",0
msg6 BYTE "v1 est le plus grand",0
msg7 BYTE "v3 est le plus grand",0
v1 DWord
v2 DWord
v3 DWord
.code
main PROC
mov edx,OFFSET msg
call WriteString
call readint
mov V1,eax
call readint
mov V2,eax
call readint
mov V3,eax
Mov eax,V1
cmp eax,V2 ; compare les valeurs v1 et v2
jg cas ;si v1>v2
L1: ;Continue ici si elles sont égales
cmp eax,V3 ; compare les deux autres valeurs à v3
jg L3 ; saute vers L3 si les deux valeurs sont plus grandes que v3
jl L4 ; saute vers L4 si les deux valeurs sont plus petites que v3
L2: ; Continue ici si elles sont égales
mov edx, offset msg2
Jmp @FinWS
L3:
Mov EBX,10
call writeint
mov edx,offset msg3
Jmp @FinWS
L4:
mov eax,V3
Mov EBX,10
call writeint
mov edx,offset msg4
Jmp @FinWS
cas:
mov edx,offset msg6
cmp eax,V2
jg @FinWS
mov edx,offset msg7
jl @FinWS
mov edx,offset msg5
@FinWS:
call writestring
fin:
exit
main ENDP
END main
Le chêne aussi était un gland, avant d'être un chêne