汇编器消息:错误:尝试将.org向后移动

问题描述 投票:0回答:1

我正在使用xtensa-esp32-elf-8.2.0工具链进行编译(基于gcc 8)。我还尝试了xtensa-esp32-elf-5.2.0工具链(基于gcc 5)。两者都生成相同的错误消息。

我编写了一个跳转表,该跳转表具有以下10次指令,这些指令基本上用于跳转到特定地址并执行特定指令。但是编译时出现错误,这是>

汇编程序消息:错误:尝试将.org向后移动

    .org    .LSAC_jumptable_base + (16 * 6)
    mov     a6, a4
    l32i    a2, sp, 0x08
    l32i    a4, sp, 0x10
    mov     a1, a0
    rsr     a0, excsave1
    rfe

我已经在网上冲浪了,但是,大多数页面都没有提供可行的答案,或者他们说这是编译器版本的问题(在我使用最新的工具链时,我认为这不是正确的解决方案)

有人可以帮忙吗

示例使用我的跳转表:

    movi    a3, .LSAC_jumptable_base
    l32i    a0, sp, 0
    addx8   a2, a2, a3      // a2 is now the address to jump to
    l32i    a3, sp, 0x0c

    jx      a2

    .org    .LSAC_jumptable_base + (16 * 5)
    mov     a5, a4 //Here, a4 is the correctly read value
    l32i    a2, sp, 0x08
    l32i    a4, sp, 0x10
    mov     a1, a0
    rsr     a0, excsave1
    rfe

    .org    .LSAC_jumptable_base + (16 * 6)
    mov     a6, a4
    l32i    a2, sp, 0x08
    l32i    a4, sp, 0x10
    mov     a1, a0
    rsr     a0, excsave1
    rfe

我正在使用xtensa-esp32-elf-8.2.0工具链进行编译(基于gcc 8)。我还尝试了xtensa-esp32-elf-5.2.0工具链(基于gcc 5)。两者都产生相同的错误...

c assembly inline-assembly gas xtensa
1个回答
1
投票
.org    .LSAC_jumptable_base + (16 * 5)
mov     a5, a4 //Here, a4 is the correctly read value
l32i    a2, sp, 0x08
l32i    a4, sp, 0x10
mov     a1, a0
rsr     a0, excsave1
rfe

.org    .LSAC_jumptable_base + (16 * 6)
© www.soinside.com 2019 - 2024. All rights reserved.