1

xとnの2つの数値が与えられた場合、xに2 ^ nを掛ける方法は何ですか?たとえば、x=3.7およびn=5です。したがって、3.7 * 2 ^ 5=118.4です。FPUコマンド(数学コプロセッサー)を使用せずにこれを行う必要があります。

したがって、32 btプロセッサの数値は32ビットで表されることがわかりました。1つ目は符号、次の8(2-9)は指数、次の23はSIGNIFICANDと呼ばれます。

指数フィールドは2^kのkです。だから私がする必要があるのは、指数フィールドを変更してそれにnを追加することだけです。exponent = exponent + n

では、アセンブリ8086でこれを行うにはどうすればよいですか?

ありがとうございました

4

1 に答える 1

3

これは非常に醜いインラインasm、VSスタイルです。うまくいけば、あなたはアイデアを得るでしょう:

float mul(float f, int p)
{
    __asm {
        mov eax, f
        mov ecx, p
        shl ecx, 23
        add eax, ecx
        mov f, eax
    }

    return f;
}

これは明らかにオーバーフローなどのチェックを行いません。

于 2013-02-19T11:50:12.017 に答える