行尾垃圾,定义 .double 十六进制值时第一个无法识别的字符是“a”

junk at end of line, first unrecognized character is `a' while defining a .double hex value

在这样的部分中定义变量时,

.section ".__mydebug", "aw"
mydstart:   .double 0x123456789abcdef0
myptr:  .double 0x8888888899999999

我明白了

arch/arm64/kernel/head.S:994: Error: junk at end of line, first unrecognized character is `a'

如果我将 0x123456789abcdef0 更改为 0x1234567890000000,它可以编译。所以编译器 (gcc) 似乎不理解十六进制字符。我试过 0x123456789ABCDEF0 但从 A 开始也是同样的错误。我该怎么做?

.double is for assembling floating-point values.

如果您想要 64 位整数 0x123456789abcdef0,请使用 .dword.xword.8byte