こんにちは私は単純な数学関数(2c-a)/(c + ax)を計算しようとしています。しかし、すべての私の答えは、与えられた0 いくつかの理由: - B、B - C、W - W、X - Y、W - 任意のアイデアをシンプルなアセンブリ数学の計算
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:
B感謝を。エラー 式=(2 * C-A)/(C + * xを)発生短い問題があるので
このx86アセンブラはありますか?質問には、適切なプロセッサや命令セットでタグ付けする必要があります。 –
デバッガを使用してプログラムをシングルステップ実行し、どこがうまくいかないかを確認します。まず、 'ADD dx、ax'は' + a'のように '-a'を計算するようには見えません。そして、 'MUL x [si]'はあなたの結果があったところで 'dx'を破壊します(バイトサイズの乗算でない限り)。また、私たちは 'x [si]'が何であるか知りません。次に、 'bx、ADD bx、ax'を実行します.bxには何もロードされません。 – Jester