問題タブ [sign-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 - MOV 8ビット~16ビットレジスタ(al~bx)
8 ビット値を BX レジスタ (16 ビット) に移動する問題を解決するにはどうすればよいですか?
このために私は得る:
assembly - 符号ビットのコピーを追加することで 2 の補数の符号拡張が機能するのはなぜですか?
のように、16 ビットの符号付き数値を 32 ビット レジスタに符号拡張する例を見てみましょうmov $+/-5, %ax
movswl %ax, %ebx
。
次の 2 つのケースが考えられます。
上位ビットはゼロです (数字は正です)。これは非常に理解しやすく直感的です。たとえば、数字がある場合
5
、左にゼロを埋め込むことは非常に理解しやすいです。例えば:ただし、理解するのが難しいのは、それが負の数であり、符号拡張する場合です。例:
はい、上位ビットを で埋めるだけであることはわかってい1
ます。しかし、何がそれを機能させるのでしょうか? おそらく、2進数の「プロパティ」がそれを可能にするものについての一種の説明は、これをよりよく理解するのに役立つでしょう.