多く/ほとんどの命令セットの参照は、どのフラグがどの命令によって影響を受けるかを示します。たとえば、次のようなものです
。
一部のリファレンス マニュアルには命令ごとにその情報があり、一部のリファレンス マニュアルには、影響を受けるフラグを示すことを目的とした別の表があり、命令ごとにどのフラグが影響を受けるかを示していない場合があります。
ドキュメントの他の場所では、文字の意味を見つける必要があります。ほとんどのプロセッサは、Z、V、N、および C を参照しています。上記でリンクした参照では、もちろん、フラグを示すためにさまざまな記号を使用しているため、表を見つけて参照する必要があります。どのフラグがどれであるかを教えてから、質問で尋ねられた指示を調べてください。
これで質問 1 と 2 がカバーされます。
3 番目の質問については、「符号付き数値と符号なし数値のビット単位の観点からの違いは何ですか」という質問に答えると、理解が得られます。基本的な概念がスケールアップすることを知っているので、2 ビットまたは 3 ビットで考えるのが最も簡単だと思います。たとえば、3 ビットで考えると、ビット パターン 0b011 は符号なしビット パターンとしてどのように解釈され、符号付きビット パターンとしてどのように解釈されるのでしょうか。0b111はどうですか?0b001はどうですか?そして0b101?0b011 に 0b010 を掛けると、符号なしの数値を使用すると何が得られるでしょうか? 署名された番号として?
答えがまだ明らかでない場合は、3 ビット オペランドの 64 の組み合わせすべてを書き留めて、数値が符号なしと見なされると仮定して結果を計算し、次に符号付きと見なされる数値で結果を計算します。問題のステートメントがオペランドのいずれかの上位ビットが設定されているかどうかを示しているため、間違いを犯していない場合は、符号付き数学と符号なし数学の間で同じ結果が得られません。上位ビットがクリアされている場合、同じ結果が得られます。その理由は、符号付きと符号なしのエンコーディングを理解したり、2 の補数という別の用語を使用したりすることにあります。
ここで、いくつかの興味深い 4 ビットのケース (上位ビットが設定されているものと設定されていないもの) をいくつか試して、4 ビットで 3 の場合と同じ結果が得られるかどうかを判断してから、電卓を使用して 8 ビットまたは 16 ビットの数値を試してください。ルールが任意の数のビットに適用されるか、それとも変更されるかを決定します。次に、3 ビットの数値について学んだことが、IA-32 IMUL 命令のオペランドのサイズに関連するステートメント/質問に答えるか、少なくとも明確にするかどうかを判断します。