首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >arm-none-eabi-as和ARM评论标志‘;

arm-none-eabi-as和ARM评论标志‘;
EN

Stack Overflow用户
提问于 2013-11-30 14:04:10
回答 3查看 3.8K关注 0票数 1

我得问一下..。它已经让我发疯好几天了。在选择作为工具链后,我的生活变成了一场噩梦,原因很简单--手臂--没有--把每一个评论当作指令,而且有时候它就是不理解一个手臂汇编程序抛出花哨的错误,比如"AREA是一个糟糕的指令“.

下面是我从keil文档中复制并粘贴的代码:

代码语言:javascript
复制
AREA     Loadcon, CODE, READONLY
    ENTRY                              ; Mark first instruction to execute
start
    BL       func1                     ; Branch to first subroutine
    BL       func2                     ; Branch to second subroutine
stop
    MOV      r0, #0x18                 ; angel_SWIreason_ReportException
    LDR      r1, =0x20026              ; ADP_Stopped_ApplicationExit
    SVC      #0x123456                 ; ARM semihosting (formerly SWI)
func1
    LDR      r0, =42                   ; => MOV R0, #42
    LDR      r1, =0x55555555           ; => LDR R1, [PC, #offset to
                                       ; Literal Pool 1]
    LDR      r2, =0xFFFFFFFF           ; => MVN R2, #0
    BX       lr
    LTORG                              ; Literal Pool 1 contains
                                       ; literal Ox55555555
func2
    LDR      r3, =0x55555555           ; => LDR R3, [PC, #offset to
                                       ; Literal Pool 1]
    ; LDR r4, =0x66666666              ; If this is uncommented it
                                       ; fails, because Literal Pool 2
                                       ; is out of reach
    BX       lr
LargeTable
    SPACE    4200                      ; Starting at the current location,
                                       ; clears a 4200 byte area of memory
                                       ; to zero
    END                                ; Literal Pool 2 is empty

我的问题是:我应该使用什么标志来使arm--无eabi--来理解它自己的汇编程序指令,并将评论作为注释处理?

*添加:*下面是我用来编译这段代码的命令:

arm-none-eabi-gcc hello.S -Os -g -mthumb -mcpu=cortex-m3 -msoft-float -o hello.elf

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-30 14:18:11

在GNU的ARM程序集语法中启动单行注释的默认字符是@ IIRC。如:

代码语言:javascript
复制
BL   func1             @ Branch to first subroutine

至于汇编程序指令,它们是特定于汇编程序的,所以您不能只使用armasm代码并使用GNU的汇编程序组装它,反之亦然。您必须查找每个指令的含义,并尝试为将要使用的汇编程序找到相应的指令。

例如,要替换AREA Loadcon, CODE, READONLY,您可能可以使用.text (除非您需要能够按其名称引用该节)。

票数 4
EN

Stack Overflow用户

发布于 2013-11-30 14:17:00

gnu以编写自己的汇编语言来取代早已确立的语法而闻名。基本上,您编写的arm汇编程序语法不适用于gnu。就注释而言,我更愿意使用两者的组合;@对于我的注释,您将需要找出两者之间常见的语法,当我为两者开发时,我会/可以编写在两者上组装的代码,但我没有任何访问权限。

是的,这很令人沮丧..。

票数 1
EN

Stack Overflow用户

发布于 2013-11-30 20:47:21

我们应该检查一下gnu as文档。一般来说,每种架构在语法上都有其不同之处。ARM并不是不同

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20301140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档