【发布时间】:2020-04-16 16:55:37
【问题描述】:
GNU GAS 文档似乎无法为 ARM 目标正确定义某些语法特性,因此我什至难以编写简单的程序集。
两个这样的例子:
-
ARM Compiler Migration and Compatibility Guide Version 6.02 声明,以及多行 cmets,在 GNU 语法下:
//标记将一行的剩余部分标识为注释:MOV R0,#16 // Load R0 with 16这似乎与Using as 指南相冲突,该指南指出:
在一行的任何地方出现“@”表示注释的开头延伸到该行的末尾。
-
指令中的隐式转换问题仅在 Arm 文档中传递,并且仅给出失败的情况:
GNU 语法汇编要求立即值以编码形式呈现。指令
MOVK x1, #0x40000产生以下消息:error: immediate must be an integer in range [0, 65535].“编码”到底是什么意思?我是否假设在 GNU 下同样支持
LSL语法? GAS 文档中似乎没有解决它。
在哪里可以找到 GAS + ARM 目标的具体和完整的语法定义? 提前致谢。
【问题讨论】:
标签: assembly arm gnu-assembler