comment comparer 2 nombres si l'un est plus grand que l'autre en asm ?

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

comment comparer 2 nombres si l'un est plus grand que l'autre en asm ?

Message par rendomizer »

Oui je me demande comment on compare deux nombres si l'un est plus grand ou plus petit en assembleur ?
Je ne suis qu'un utilisateur pas un pro
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: comment comparer 2 nombres si l'un est plus grand que l'autre en asm ?

Message par __sam__ »

Ca dépend du cpu, mais en général ils ont tous une instruction de comparaison. On la fait alors suivre par un saut conditionnel relatif au test plus grand (resp. plus petit) signé ou non. Si ils n'ont pas d'instruction de comparaison (cas très très très rare), et qu'il est en arithmétique complément à 2, il faut faire la soustraction des deux nombres et regarder le bit de poids fort du résultat. S'il est à 1, c'est que la soustraction a-b est strictement plus petite que 0, c'est à dire a<b.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Notator
Messages : 1286
Inscription : 09 août 2015 20:13

Re: comment comparer 2 nombres si l'un est plus grand que l'autre en asm ?

Message par Notator »

Ou faire la soustraction, et regarder le signe du résultat d'une autre façon ; pas mal de microprocesseurs ont un registre d'état, dont il suffit de tester le bit de signe négatif, qui indique évidemment si la valeur concernée est négative ou pas.
Notator est le nom d'un programme séquenceur Midi et notation musicale pour Atari ST(e) (puis Mac).
Avatar de l’utilisateur
Mokona
Messages : 1040
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: comment comparer 2 nombres si l'un est plus grand que l'autre en asm ?

Message par Mokona »

Puisque j'imagine que tu poses la question pour le Z80 de ton projet VG5000, regarde du côté de l'instruction "CP" suivi, généralement, d'un "JR" conditionnel (JR NZ, JR C, JR Z, JR NC) qui branchera en fonction de l'état du registre d'état, comme indiqué dans les messages précédents.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: comment comparer 2 nombres si l'un est plus grand que l'autre en asm ?

Message par rendomizer »

merci
Je ne suis qu'un utilisateur pas un pro
Répondre