2

在 ARM 汇编中

bic r0, r0, #0x1f

工作正常。现在我想要#define MODE 0x1f并将上面的代码更改为bic r0,r0, #MODE.

这里有风险。如果你忘记包含#define MODE 0x1f定义的头文件,gcc 会毫无怨言地汇编,但结果是错误的,结果编译器翻译#MODE为 0。

我证明问题是由“ #”引起的。我怎么能告诉预处理器不要处理“#”,因为这#是由程序集使用的?

谢谢

4

1 回答 1

3
  1. 认为最新的 ARM 文档将立即数中的 # 指定为可选,因此您可以尝试使用 bic r0, MODE。
  2. 您可以使用程序集级定义:

    .equ 模式,0x1F

    bic r0,r0, #MODE

于 2011-02-15T11:23:57.410 回答