如何在 ARM 程序集中注释标签

Dan*_*iel 2 assembly arm

我想注释掉一个ARM汇编代码的标签,因为我想玩不同的代码,但即使我注释掉主标签,编译器仍然抱怨标签已经定义。

这是代码

.section    .data                


.section    .init                
.globl     _start                

_start:                          
    b       main                 

.section    .text                
main:                            
    mov     sp, #0x8000          
    mov     r1, #1               
    mov     r2, #3               
    sub     r1, r2               
halt$:                           
    b   halt$                    

.section    .data                

; STARTING FROM THIS, IT IS SUPPOSED TO BE COMMENTED OUT                             
;.section    .init               
;.globl     _start               

;_start:                         
    ;b       main                

;.section    .text               
;main:                           
    ;mov     sp, #0x8000         
    ;bl      EnableJTAG          

    ;mov     r1, #0              
    ;mov     r2, #0              
    ;mov     r3, #0  ;i = 0      

;forloop:                        
    ;cmp     r3, #100            
    ;bpl     forloopEnd          

    ;tst     r3, #0xAA           
    ;bne     elseif              
Run Code Online (Sandbox Code Playgroud)

这是收到的错误

Error: symbol `_start' is already defined     
Error: symbol `main' is already defined       
Error: symbol `halt$' is already defined      
Run Code Online (Sandbox Code Playgroud)

那么我该怎么做才能让编译器忽略注释标签呢?谢谢

Mic*_*ael 5

@当对 32 位源代码使用 GNU 的 ARM 汇编程序时,该字符表示单行注释的开始:

一行中任何地方出现“@”表示注释的开始,该注释一直延伸到该行的末尾。

如果“#”作为一行的第一个字符出现,则整行都被视为注释,但在这种情况下,该行也可以是逻辑行号指令(请参阅注释)或预处理器控制命令(请参阅预处理) .

来源

对于 64 位源,情况并非如此。gas 对所有处理器都有可怕的文档(一种适合所有情况(,因此很难评论它可以做什么和不能做什么。

可能没有办法在 64 位gas 中注释掉一行。在输出-SGCC仔细避免任何注释行,这是国际海事组织一个不好的迹象。

这是因为我指的是在64位armbian:

 as --version
GNU assembler (GNU Binutils for Debian) 2.28
Run Code Online (Sandbox Code Playgroud)

如果得到确认,这可以被视为缺陷(“错误”)并且值得报告错误。