Bonjour J'essaye de calculer la fonction mathématique simple (2c-a)/(c + ax). Mais pour une raison quelconque toutes mes réponses sont 0. Compte tenu: a - b, b - w, c - w, x - w, y - bCalcul mathématique simple d'assemblage
MOV ax, 2
MUL c ; dx:ax=2c
JC kl1 ; sandauga netilpo i ax
XCHG ax, dx
MOV al, a
XOR ah, ah
ADD dx, ax ; c^2-a
JC kl1
MOV al, a
MUL x[si] ; a*x
JC kl1 ; sandauga netilpo i ax
ADD bx, ax ; ax+c
JC kl1
CMP al, 0
JE kl2 ; dalyba is 0
MOV ax, dx
XOR dx, dx
DIV bx ; ax=rez
re:
Merci pour toutes les idées.
Est-ce un assembleur x86? Vous devez étiqueter votre question avec le processeur et/ou le jeu d'instructions approprié. –
Utilisez un débogueur pour faire un pas de votre programme et voir où il va mal. Pour commencer, 'ADD dx, ax' n'a pas l'air de calculer' -a' plus comme '+ a'. Alors 'MUL x [si]' détruit 'dx' là où vous avez eu votre résultat (sauf s'il s'agit d'une multiplication de la taille d'un octet). En outre, nous ne savons pas ce que «x [si]» est, aucune mention de cela dans votre question. Vous faites ensuite 'ADD bx, ax' sans que' bx' ne soit chargé avec quoi que ce soit. – Jester