【问题标题】:Can't add a section in FASM Syntax无法在 FASM 语法中添加部分
【发布时间】:2014-01-02 05:10:32
【问题描述】:

我在使用 FASM 语法添加部分时遇到了一些问题。我检查了其他网站,我确信这是正确的语法。我一定是错过了什么:

format elf executable 3
entry start

section '.text' readable executable

start:
mov ebx, 0
mov eax, 1
int 0x80

FASM 给了我:

平面汇编器版本 1.70.03(16384 KB 内存) exit.asm[4]: section '.text' 可读可执行错误: 非法指令。

顺便说一句,我也不能创建一个命名段,例如:

segment .data

但我可以:

segment readable executable

我找不到对此的解释。

【问题讨论】:

    标签: assembly x86 segment fasm


    【解决方案1】:

    section 关键字仅在 ELF 结果稍后将与外部链接器链接时使用。

    如果format指令中包含executable子句,则只允许使用segment指令,结果文件无需链接直接执行。

    这一切都在FASM manual ch.2.4.4 中相关部分的末尾进行了解释。

    【讨论】:

    • If the format directive contains executable clause, only segment directives are allowed -- 这说明了什么?
    【解决方案2】:

    FASM documentation for ELFs 似乎不是最新的。你应该去FASM forums 报告和/或询问它。

    我在1.70.03 中编译了这个,改编自elfexe 示例:

    format elf executable 3
    entry start
    
    segment readable executable
    
    start:
    mov     ebx,0
    mov     eax,1
    int     0x80
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多