MULU命令に関する質問があります。私が気づいたことの1つは、データレジスタに値000FFFFFがあるとします。そして00FFFFFFを含むように別のFを入れたいとします。68000アセンブリ:奇妙な結果をもたらす乗算
MULU #16, D4
そして、私は(私は00FFFFFFを取得する)命令を追加することによって、別のFを追加します。私は通常、やっていることはそうのように16でデータレジスタを掛けています。しかし、000FFFFFで再び乗算すると、データレジスタ内のすべてのビットがゼロになります(00000000)。それが乗算された後、私は000FFFF0を持ち、残りはそれに続くでしょう。私はまだこれの理由を理解していない。私はthis exampleを探して、それがうまくいくと思う。私はまた、000FFFFFに1を単に追加すると、Extend、Carry、およびZeroビットがすべてtrueになることに気づいた。
何_「しかし、私は000FFFFFに再び掛けたときに、」記号を維持するために算術論理ものではなく、シフトを使用するようにしてください_意味する?指示の正確な順序を私たちに教えてください。また、16を乗ずるのではなく、4だけ左にシフトするのはなぜですか? – Michael
あなたはそうです。私は乗算を使ってはいけません。代わりに左に4をシフトすることは素晴らしい解決策です。問題が解決しました。 –