-6

腕の組み立てについて質問です。次の armv7 アセンブリ コードの 16 進バイナリ出力は何ですか?

LDR r3, #0xaabbccdd
BLX r3

このコードフラグメントのアセンブラ出力が必要ですが、コンピューター環境が貧弱です

前もって感謝します

4

1 に答える 1

2

コメント提供者が述べたようにLDR r3,#0xaabbccdd、有効な指示ではありません。ARMオペコードのイミディエートは、の形式になっています。これにより、eg 、さらには-ZeroExtend(imm8) ROR (imm4*2)を表すことができますが、egまたは。を表すことはできません。 アセンブラは通常、32ビットのイミディエートをロードするための疑似命令を提供します。たとえば、GASでは次のことができます。0xaa0000000x00bb00000xd000000d0xaabb00000xaabbccdd

ldr r3,=0xaabbccdd

これは、PC相対負荷としてエンコードされます-つまり、ldr r3,[pc,#offset]。オフセット(したがって正確な命令エンコーディング)は、命令から値が格納されているリテラルプールまでの距離によって異なります。

于 2013-02-20T09:41:08.853 に答える