gpt4 book ai didi

assembly - 如何在ARM汇编中注释标签

转载 作者:行者123 更新时间:2023-12-02 08:01:04 25 4
gpt4 key购买 nike

我想注释掉 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

这是收到的错误

Error: symbol `_start' is already defined     
Error: symbol `main' is already defined
Error: symbol `halt$' is already defined

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

最佳答案

@ 字符表示使用 GNU 的 ARM 汇编器获取 32 位源代码时单行注释的开始:

The presence of a `@' anywhere on a line indicates the start of a comment that extends to the end of that line.

If a `#' appears as the first character of a line then the whole line is treated as a comment, but in this case the line could also be a logical line number directive (see Comments) or a preprocessor control command (see Preprocessing).

( source )

对于 64 位源代码来说,情况并非如此。 Gas 对于所有处理器都有可怕的文档(一刀切)(因此很难评论它能做什么和不能做什么。

可能无法在 64 位 gas 中注释掉单行。 gcc-S 的输出小心地避免了任何注释行,这在 IMO 中是一个坏兆头。

这是我在 64 位 armbian 上引用的 as:

 as --version
GNU assembler (GNU Binutils for Debian) 2.28

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

关于assembly - 如何在ARM汇编中注释标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40799389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com