Page 1 sur 1

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

Publié : 10 sept. 2017 17:03
par rendomizer
Oui je me demande comment on compare deux nombres si l'un est plus grand ou plus petit en assembleur ?

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

Publié : 10 sept. 2017 18:35
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.

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

Publié : 10 sept. 2017 23:28
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.

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

Publié : 11 sept. 2017 00:38
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.

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

Publié : 28 sept. 2017 18:40
par rendomizer
merci