浮動小数点を使用した数値について詳しく知るには、いくつかのリソースが必要です。emu8086環境でその種類の数値の加算および減算演算をコード化する必要があります...。
どんな助けでも大歓迎です
サイズ2の配列に各数値を格納すると、浮動小数点数の加算と減算を実装できます。
配列の最初のブロックは基数で、2番目のブロックは10進数です(もちろん通常の整数として実装されます)。
これは最も効率的な方法ではないかもしれませんが、確かに可能です。アルゴリズムでは、数値の格納方法を考慮してから、ADDおよびSUB命令を実行する必要があります。
コードが必要ないとおっしゃっていたので、例を投稿しませんが、浮動小数点ユニットのないプロセッサでこれを実行する方法がわかるといいのですが。
私の知る限り、emu8086は8087FPUを搭載したマシンをエミュレートしていません。
浮動小数点は、//または通常のレガシー1 x87命令を使用せずに、純粋なソフトウェアでfld
あるfadd
必要fstp
があり ます。
リアルモードでFP命令を使用する場合、最善の策は、emu8086ではなく最新のx86+x87をエミュレートするDOSBoxやBOCHSなどのエミュレーターです。imul ax, 1234
これには、 1-オペランドを使用する代わりに、のようなより便利な命令を使用できるという利点もありますmul
。
emu8086(または実際の8086マイクロコントローラー)で立ち往生している場合、ほとんどの問題は、実際には浮動小数点ではなく、固定小数点で解決できます。固定ビット数を小数部分として扱います。これは、整数命令を使用するソフトウェアで行うのが簡単です。ただし、それでも。のような数値を表すことができます1.25
。
脚注1:最新のx86では、x87FPUは廃止されました。80ビットの精度が実際に必要な場合を除いて、現在、スカラーおよびSIMDFPの計算にSSEおよびSSE2を使用しています。もちろんemu8086にもこれはありません。もちろん、最新のx86CPUはx87命令をサポートしています。既存のバイナリとの下位互換性があることが、x86がまだ存在している主な理由です。
8086プロセッサには浮動小数点ユニットがありません。8087と呼ばれる浮動小数点コプロセッサがありました。これは8086で使用することを目的としていました。
元の8087の命令セットはここで確認できます:http://en.wikipedia.org/wiki/X86_instruction_listings#x87_floating-point_instructions