gpt4 book ai didi

gcc - 臂组件 : '#define' risk

转载 作者:行者123 更新时间:2023-12-04 06:42:02 26 4
gpt4 key购买 nike

在 ARM 汇编中

bic r0, r0, #0x1f

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

这里有风险。如果您忘记在 #define MODE 0x1f 处包含头文件已定义,gcc 无怨无悔地汇编,但结果是错误的,结果编译器翻译了 #MODE作为 0。

我证明问题是由“ #”引起的。我怎么能告诉预处理器不要像这样处理“#” #被汇编使用?

谢谢

最佳答案

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

    .equ 模式, 0x1F

    bic r0,r0, #MODE
  • 关于gcc - 臂组件 : '#define' risk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4126810/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com