問題タブ [instruction-encoding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
148 参照

assembly - 即値オペランドを使用した x86-16 命令のエンコード

私は命令のデコードに挑戦しています.今のところ、80x86 16ビットマシンでは、ソースオペランドとして即値を持たない命令のデコードに多くの問題はありません.ソースオペランドがレジスタまたは位置メモリですが、即値です。次の命令は、次のようにデコードします。

代わりに、それは公平ではありません。これは正しいデコードです:

ソースオペランドが即値であると仮定して、デコードがどのように機能するかを誰かに説明してもらえますか?

0 投票する
1 に答える
343 参照

assembly - 命令デコーダは、プレフィックスとプライマリ オペコードの違いをどのように判断しますか?

x86命令エンコーディング形式に頭を悩ませようとしています。私が読んだすべての情報源は、依然として主題を混乱させています。私はそれを少し理解し始めていますが、理解に苦労していることの1つは、CPU命令デコーダーがオペコードプレフィックスとオペコードを区別する方法です。

命令の全体の形式は基本的にオペコードに依存することを認識しています(もちろん、オペコードで定義された追加のビットフィールドを使用)。命令にプレフィックスがなく、オペコードが最初のバイトである場合があります。デコーダーはどのように知るのでしょうか?

オペコードバイトとプレフィックスバイトは同じバイナリ値を共有しないため、命令デコーダーは違いを見分けることができると思います。したがって、デコーダーは、バイト内の一意の 2 進数が命令かプレフィックスかを判断できます。たとえば (この例では、1 バイトのオペコードに固執します)、REXまたはLOCKプレフィックスは、アーキテクチャの命令セット内のオペコードと同じバイト値を共有しません。