問題タブ [zero-extension]
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.
assembly - 負の即値定数を持つ MIPS の andi 命令と addi 命令
$t2= と仮定0x55555550して、次の命令を実行します。
$t2 は0x0005550
これは MIPS エミュレーター1で確認されています。
しかし、それは私が期待したものではありません。答えは 0x55555550 & 0xFFFFFFFF = 0x55555550 であるべきだと思います。and ロジックの前に、定数 -1 が 0xFFFFFFFF に符号拡張されたと思います。しかし、答えは 0x55555550 & 0x0000FFFF だったようです
-1 が 0xFFFFFFFF ではなく 0x0000FFFF に符号拡張される理由
脚注 1: 編集者注: 「拡張疑似命令」が有効になっている MARS は、これを複数の命令に展開し0xffffffffて tmp レジスタに生成するため、変更され$t2ません。そうしないと、MARS と SPIM の両方が、エンコードできないとしてエラーで拒否します。他のアセンブラは異なる場合があります。
assembly - この場合、MOVSX 命令の符号拡張入力はどうなりますか?
次の分解があります。
[dest] = d5 cd e8 ca 68
以下に、各命令の説明と流れを示します。
- [dest] から 1 バイトを読み取り、eax に格納します。
- edx の初期値は F7FBB898 です。あと、movsx edx、al命令はFFFFFFD5になります。この時点で edx の値が 0x000000d5 であることを確認するにはどうすればよいですか?
これらの操作の後、eax の最終値が 0xFFFFFD5 ではなく 0xd5 になるように、[dest] の初期値はどうあるべきか
assembly - MOV 8ビット~16ビットレジスタ(al~bx)
8 ビット値を BX レジスタ (16 ビット) に移動する問題を解決するにはどうすればよいですか?
このために私は得る: