为什么我不能执行二进制文件?

时间:2019-10-28 17:48:27

标签: assembly gas

嘿,我在GAS中有一个helloworld汇编程序。现在我打算将其编译为64位,并且会引发错误

“。/helloworld:无法执行二进制文件:Exec格式错误”

组装:--32 -o helloworld.o helloworld-a.asm

链接:ld -m elf_i386 -o helloworld helloworld.o

当我在没有“ --32”和“ -m elf_i386”的情况下进行分割时,会出现分段错误。

.section .data

str:    .ascii  "Hello world!\n"
    strlen = . - str

num:    .long   1337

.section .text

.global _start

_start:
    movl    $4, %eax
    movl    $1, %ebx
    movl    $str, %ecx
    movl    $strlen, %edx
    int $0x80

    movl    $1, %eax
    movl    $0, %ebx
    int $0x80

这就是我的程序:)

谢谢您的帮助;)

0 个答案:

没有答案