問題タブ [immediate-operand]
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 - ARM アセンブリでの即値エンコーディング
私は現在アセンブリ言語について学んでいますが、即値がどのようにエンコードされるかについて少し混乱しています。0xff00ff00、0xffffffff、0x007f8000 の値が有効である理由を誰か説明できますか? また、値 0xff0000ff、0x007f9000 が無効なのはなぜですか?
私の理解では、12 ビットの即値は回転の上位 4 ビットと定数の下位 8 ビットに分割されます。したがって、12 ビットを超える値が必要になるため、上記の値はすべて無効であると考えました。
このトピックに関するいくつかの説明は、非常に役立ちます、ありがとう!
assembly - 64ビットバイナリリテラルをraxに移動するには? エラー A2071: 指定されたサイズに対してイニシャライザの大きさが大きすぎます
これが私のコードです。バイナリ値のサイズを半分の 32 ビットにすると動作しますが、33 ビット以上を試すとすぐに、「エラー A2071: 初期化子の大きさが指定されたサイズに対して大きすぎます」というメッセージが表示されます。
これが私のコードです:
私の知る限り、rax は 64 ビット レジスタであり、この 2 進数の実際の数値表現 (つまり、18,446,744,073,709,551,615 = 2^64 - 1) を使用すると、動作します...しかし、33 以上で試してみると実際のビット値、プログラムはアセンブルしません
これを修正する方法を知っている人はいますか?
ありがとう