2

我正在尝试在 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 文件的第一行中使用它时遇到了相同的错误,正如我在许多示例中看​​到的那样,因此我将其删除)。

我是否缺少让汇编程序识别这些关键字的东西?

4

0 回答 0