我无法在ubuntu中执行二进制文件。它给出了错误:bash,无法执行二进制文件

时间:2014-03-17 12:49:48

标签: ubuntu nasm ld

$ file as1 as1:ELF 64位LSB可执行文件,x86-64,版本1(SYSV),静态链接,未剥离

$ file / bin / ls / bin / ls:ELF 32位LSB可执行文件,Intel 80386,版本1(SYSV),动态链接(使用共享库),用于GNU / Linux 2.6.15,剥离

我如何运行二进制文件?

代码:

  SECTION .data
msg1 db "HELLO WORLD !!!",0ah   ;msg to be print
msg1len equ $-msg1
SECTION .bss

SECTION .text
GLOBAL _start
_start:
mov rax,1                       ;system read call
mov rdi,1
mov rsi,msg1
mov rdx,msg1len
syscall

mov eax,60          ;system end call
mov edi,0
syscall

1 个答案:

答案 0 :(得分:0)

我假设as1是你编译的汇编文件。您似乎根据file /bin/ls的结果运行32位系统。您可以使用uname -m确认您有32位内核。在这种情况下,由于您似乎使用64位寄存器rax而无法运行程序...

您可以设置64位系统,也可以重写程序只使用32位。