操作数2大于8位的ARM汇编指令?

Ale*_*ohr 2 assembly arm

尝试cmp r0, #350并说 350 不能以 Operand2 格式表示。我假设它是因为 350 大于 8 位。怎么和350比较??

tan*_*grs 5

您需要事先将常量加载到寄存器中,然后比较寄存器。

尝试类似的东西

ldr r1, =350
cmp r0, r1
Run Code Online (Sandbox Code Playgroud)

这个的反汇编看起来像这样

   0:   e51f1000    ldr r1, [pc, #-0]   ; 8 <.text+0x8>
   4:   e1500001    cmp r0, r1
   8:   0000015e    .word   0x0000015e
Run Code Online (Sandbox Code Playgroud)

它将常量存储在符号的末尾,并使用与 pc 相关的访问将其加载到寄存器中。