我正在尝试在 Go 程序中发出 DMB 指令,并且我正在使用 .s 文件中定义的 asm 函数。我在 ARMv7 设备上使用 Go 1.7.3 进行编译。
DMB 不是 Go 中受支持的指令,但我在此处看到有关如何使用不受支持的操作码的文档。
使用一些 ARM gcc binutils,我发现 DMB 的操作码是 f57ff05f。我的issue_dmb.s
文件在下面。
TEXT ·issue_dmb(SB),$0
// DMB: opcode f57ff05f
BYTE $0xF5; BYTE $0x7F; BYTE $0xF0; BYTE $0x5F
RET
构建时出现错误:无法识别的指令“BYTE”
(可能相关:我NOSPLIT
在 .s 文件的第一行中使用它时遇到了相同的错误,正如我在许多示例中看到的那样,因此我将其删除)。
我是否缺少让汇编程序识别这些关键字的东西?