行尾垃圾,定义 .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
。
在这样的部分中定义变量时,
.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
。