我试图在Go程序中发出DMB指令,并且我正在使用.s文件中定义的asm函数。我在ARMv7设备上使用Go 1.7.3进行编译。
DMB不是Go中支持的指令,但我看到documentation here有关如何使用不支持的操作码的信息。
使用一些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"
(可能相关:当我在.s文件的第一行中使用它时,我得到了与NOSPLIT
相同的错误,正如我在许多示例中看到的那样,所以我删除了它。)
我是否遗漏了让汇编程序识别这些关键字的内容?