J'essaie de trouver un maximum entre deux valeurstrouver Assemblée maximum de deux valeurs
_FindMax:
push ebp
mov ebp, esp
mov eax, dword [ebp+12] ; get fist argument
mov ebx, dword [ebp+8] ; get second argument
cmp eax, ebx
jl LESS ; if eax less to LESS
LESS:
mov eax, ebx ; ebx is greate and return it
mov esp, ebp
pop ebp
ret
mais problème est que moins: l'étiquette est toujours en cours d'exécution. par exemple si les paramètres sont égaux, alors LESS: label est en cours d'exécution. Pourquoi??
Si la branche n'est pas prise, le code est automatiquement exécuté dans LESS. vous devez sauter par-dessus le code que vous voulez sauter – Tommylee2k
Qu'attendiez-vous qu'il s'exécute, quand "pas moins" est vrai (je veux dire quand 'jl' ne saute pas)? BTW, vous pouvez également utiliser conditionnelle 'cmovCC', dans ce cas' cmovl eax, ebx' le résoudrait sans branchement. – Ped7g
Merci à vous tous. Problème résolu. – Alatriste